我见过很多关于如何通过 Scapy 发送 DNS 请求的示例,但对于 IPv6 则没有。作为参考,我使用的是 Python 3,并且ping6 ipv6.google.com对我来说是成功的,所以我似乎有一个合适的网关。我正在尝试结合https://www.packetlevel.ch/html/scapy/scapyipv6.html和https://thepacketgeek.com/scapy-p-09-scapy-and-dns/,但我不是确定如何做到这一点(只是替换IP(dst=dst)不起作用IPv6(dst=dst))。作为参考,我一直在尝试使用 Google 的 DNS 服务器(https://developers.google.com/speed/public-dns/docs/using)解析“google.com”。
编辑:我希望能够选择我到达的 DNS 服务器。对于 IPv4,我可以这样做:
sr1(IP(dst=dns_dst)/UDP(dport=53)/DNS(rd=1, qd=DNSQR(qname=query_name)))