import socket
import socks
import dns.message
def create_dns_query(domain):
query = dns.message.make_query(domain, 'A')
return query.to_wire()
def parse_dns_response(response_data):
response = dns.message.from_wire(response_data)
return response
s = socks.socksocket(socket.AF_INET, socket.SOCK_DGRAM)
s.set_proxy(socks.SOCKS5, "localhost", 1337)
try:
query_data = create_dns_query("google.com")
s.sendto(query_data, ("8.8.8.8", 53))
data, addr = s.recvfrom(1024)
response = parse_dns_response(data)
print(f"Response from {addr}:")
print(response)
for answer in response.answer:
for item in answer.items:
if item.rdtype == dns.rdatatype.A:
print(f"IP Address: {item}")
except Exception as e:
print(f"Error: {e}")
finally:
s.close()