没有使用来自python 2.6的scapy的DNS层

时间:2014-10-17 21:43:29

标签: python dns scapy

我将python 2.6与scapy一起使用。我的小程序在运行DNS命令后尝试打印DNSQRDNSRRsr1图层的响应详细信息。问题是从sr1命令返回的数据包不包括这些层,而是在UDP层之上包含Raw层。

另一方面,我创建的DNS数据包(在代码中 - dns_packet)包含所有这些层!!!

问题是 - 为什么我不从sr1命令获取这些图层(并且只有Raw图层)?我应该怎么做才能从sr1命令中获取这些图层(例如,为了打印DNSRR.rdata)?

感谢您的回复,谢谢您和最诚挚的问候,Eldad。

这是我的代码:

from scapy.all import *

host_name = raw_input("please enter host name:")

while host_name != "exit":

    print host_name

    dns_packet = IP(dst='8.8.8.8')/UDP(sport=24601,dport=53)/DNS(qdcount=1,qd=DNSQR(qname=host_name))

    print dns_packet.show()

    response_packet = sr1(dns_packet)

    print response_packet.show()

    host_name = raw_input("please enter host name:")

1 个答案:

答案 0 :(得分:0)

我也尝试解决这个问题 - 经过几个小时后我发现它是一个已知的bug(python-scapy bug)

修复:

1)转到python文件夹然后转到Lib \ site-packages \ scapy \

2)打开文件pton_ntop.py并到达第66行(是的,相信我......它不是运动员)

3)添加套接字。返回后,所以行将是这样的:     return socket.inet_ntoa(addr)

4)保存并关闭

5)删除文件pton_ntop.pyc

对我来说它有用..再见