'da bir Dns Paketi oluşturmada sorun yaşıyorsunuz Bir soket üzerinden göndermek için bir dns paketi oluşturmaya çalışıyorum. Herhangi bir kütüphaneyi kullanmak istemiyorum çünkü onu gönderen soket değişkenine doğrudan erişim istiyorum. DNS paketini her gönderdiğimde, wireshark bunun hatalı biçimlendirildiğini söylüyor. Tam olarak neyi yanlış yapıyorum? DNS paket kendisi ile yanlışPython
bazı şeyler: O 256 soru, sınıfın veya hiçbir türünü Sisteminiz doğal "küçük endian" bayt sırasını kullanan
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 += struct.pack("H", 1) # Query Type
packet += struct.pack("H", 1) # Query Class
return packet
# Sending the packet
builder = DnsPacketBuilder()
packet = builder.build_packet("www.northeastern.edu")
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 8888))
sock.settimeout(2)
sock.sendto(bytes(packet), ("208.67.222.222", 53))
print("Packet Sent")
data, addr = sock.recvfrom(1024)
print("Response: " + data)
sock.close()
bunu bir sınıfta kullanıyor musunuz? –