Scapy DNS请求

时间:2018-12-11 16:06:52

标签: python dns scapy

我正在尝试使用Scapy用Python编写一个发出DNS请求并接收DNS响应的脚本。 这就是我写的:

 std::map<K,V>& Process( std::map<K,V>& gData)
{
//...some here...
  realProcessing(...some arguments...)
}
    std::map<K,V*>& Process( std::map<K,V*>& gData)
{
//...another wrapper here...
  realProcessing(...some arguments...)
}

当我运行这段代码时,Ping(ICMP)工作并收到响应,但是当它发送DNS查询时会说:

packet = IP(dst="1.1.1.1")/ICMP()
res = sr1(packet)
if res:
    print "---------------------------------------"
    print "Host is Up, trying DNS Query"
    print "---------------------------------------"
    packet = IP(dst="1.1.1.1") / UDP() / DNS(rd=1, qd=DNSQR(qname="www.google.com"))
    sr1(packet)
else:
    print "Destination Unreachable!"

它一直打印点,直到我停止它并打印:“接收到83个数据包,得到0个答案,剩下1个数据包”。

您知道如何解决此问题吗? 预先感谢您的回答。

1 个答案:

答案 0 :(得分:0)

使用最新的Scapy版本,我无法复制:/ 您发布的代码有效 SR1 DNS Example

一些可以帮助您的事情:

  • 使用最新的dev版本:发行版非常慢。在https://github.com/secdev/scapy/archive/master.zip处下载并通过python setup.py install安装(在Unix上为sudo)
  • 尝试手动指定接口(使用iface=...中的sr1)。完整列表可用get_if_list()
  • 检查防火墙。可能是封包