我正在尝试构建一个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)