小编Mon*_*yBa的帖子

在Python中构建Dns数据包时遇到问题

我正在尝试构建一个dns数据包以通过套接字发送.我不想使用任何库,因为我想直接访问发送它的套接字变量.每当我发送DNS数据包时,wireshark都说它的格式不正确.我究竟做错了什么?

Dns数据包本身有些问题:它说它有256个问题,没有类,没有类型

  class DnsPacketBuilder:

def __init__(self):
    pass

def build_packet(self, url):
    packet = struct.pack("H", 12049)  # Query Ids (Just 1 for now)
    packet += struct.pack("H", 256)  # Flags
    packet += struct.pack("H", 1)  # Questions
    packet += struct.pack("H", 0)  # Answers
    packet += struct.pack("H", 0)  # Authorities
    packet += struct.pack("H", 0)  # Additional
    split_url = url.split(".")
    for part in split_url:
        packet += struct.pack("B", len(part))
        for byte in bytes(part):
            packet += struct.pack("c", byte)
    packet += struct.pack("B", 0)  # End of String
    packet += …
Run Code Online (Sandbox Code Playgroud)

python dns packets

6
推荐指数
1
解决办法
2418
查看次数

标签 统计

dns ×1

packets ×1

python ×1