28 lines
957 B
Python
28 lines
957 B
Python
import socket
|
|
import struct
|
|
|
|
def test_dns(server_ip, domain="google.com"):
|
|
header = struct.pack(">HHHHHH", 0x1234, 0x0100, 1, 0, 0, 0)
|
|
qname = b"".join(bytes([len(p)]) + p.encode("ascii") for p in domain.split(".")) + b"\x00"
|
|
qtype_qclass = struct.pack(">HH", 1, 1)
|
|
packet = header + qname + qtype_qclass
|
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
sock.settimeout(4.0)
|
|
try:
|
|
sock.sendto(packet, (server_ip, 53))
|
|
resp, _ = sock.recvfrom(1024)
|
|
ancount = struct.unpack(">H", resp[6:8])[0]
|
|
print(f"SUCCESS: {server_ip} returned {len(resp)} bytes with {ancount} answers for {domain}!")
|
|
except Exception as e:
|
|
print(f"FAILED to query {server_ip}: {e}")
|
|
finally:
|
|
sock.close()
|
|
|
|
print("Testing Aerodrome Primary VIP (140.44.4.36):")
|
|
test_dns("140.44.4.36", "google.com")
|
|
|
|
print("\nTesting Spaceport Secondary VIP (140.44.4.65):")
|
|
test_dns("140.44.4.65", "google.com")
|
|
|