我使用Python / Scapy发送DNS请求。我的计算机连接设置为使用网关的DNS。我的网关是我的路由器(Linksys LNK4500),位于192.168.1.1,我的路由器的连接设置为使用8.8.8.8作为其DNS。
如果我使用路由器地址的目的地,我会得到正确的回复。
sr1(IP(dst="192.168.1.1")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.cnn.com")))
但是,如果我想使用其他DNS服务器,例如Google,我会尝试
sr1(IP(dst="8.8.8.8")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.cnn.com")))
我收到回复"WARNING: Mac address to reach destination not found. Using broadcast."
,然后发送数据包,但我一直收到数据包而没有回答。
答案 0 :(得分:0)
我认为你不应该使用8.8.8.8。作为IP.dst,因为首先应将数据包定向到您的路由器,然后路由器将数据包发送到Google DNS服务器。