我将python 2.6与scapy
一起使用。我的小程序在运行DNS
命令后尝试打印DNSQR
,DNSRR
和sr1
图层的响应详细信息。问题是从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:")
答案 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
对我来说它有用..再见