我是Python的新手,在使用Python网络操作工具Scapy进行编程时遇到了问题。但是,我不知道它是否是一个Scapy问题,因为它是一个Python新手问题。关于scapysite,他们提供了一个我无法在自己的机器上运行的示例程序:#!/usr/bin/envpythonimportsysfromscapyimportsr1,IP,ICMPp=sr1(IP(dst=sys.argv[1])/ICMP())ifp:p.show()我得到的:Traceback(mostrecentcalllast):File"test.py",line4,infromscapyimportsr1,IP
我正在尝试在Scapy中编写一个简单的嗅探器,它仅使用GET方法打印HTTP数据包。这是代码:#!/usr/bin/pythonfromscapy.allimport*defhttp_header(packet):http_packet=str(packet)ifhttp_packet.find('GET'):printGET_print(packet)printpacketdefGET_print(packet1):print"***************************************GETPACKET*******************************
我是python的新手,正在学习一些网络编程,我希望通过我的tap接口(interface)向我的DHCP服务器发送一个DHCP数据包,并期待它的一些响应。我尝试了几种数据包构建技术,例如structs和ctypes,并最终使用了scapy。在这里,我能够发送DHCP数据包,但无法从DHCP服务器获得任何响应(使用wireshark和tcpdump进行分析)。我的数据包看起来与原始DHCP数据包相同,但未能获得响应。这是我的代码importsocketfromscapy.allimport*defmain():iflen(sys.argv)还有其他方法可以实现吗?如果是这样,请也提及它
我在python中使用scapy作为session,但我想在脚本中使用它。为什么这样?我希望能够使用sys.argv指定要使用的IP地址以及使用其他模块。如何实现? 最佳答案 您只需导入它,就像导入任何其他Python模块一样。fromscapy.layers.inetimportIP,ICMPfromscapy.sendrecvimportsrimportsyssr(IP(dst=sys.argv[1])/ICMP())或者如果您想一次导入所有内容:importscapy.allasscapyimportsysscapy.sr(s
在Scapy中,我想比较任意两个数据包a和b之间的多个header字段。这个字段列表是预定义的,比如说:fieldsToCompare=['tos','id','len','proto']#IPheader通常我会单独做:ifa[IP].tos==b[IP].tos:...dostuff...有什么方法可以从字符串列表中访问这些数据包字段,包括每个字符串的名称?喜欢:forfieldinfieldsToCompare:ifa[IP].field==b[IP].field:...dostuff... 最佳答案 您可以使用getattr
我使用了scapy模块的sniff函数。我的filter和prn函数运行良好。但是现在,我想提取TCP数据包的Raw并使用十六进制或二进制格式处理它。这是documentationscapy中的数据包类。我该怎么做?我试过printpacket[Raw]但它似乎被转换为ASCII或类似的东西。我想将其保存为十六进制或二进制。 最佳答案 您可以使用scapy.compat.raw获取数据包的原始字节1:fromscapy.allimportrawraw(packet)前者是跨版本兼容的,但如果你保证运行Python3并且不需要支持Py
我可以使用scapy将图像或文档(以MB为单位)作为数据插入数据包中吗?这就是我发送数据所做的。data="UniversityoftexasatSanAntonio"a=IP(dst="129.132.2.21")/TCP()/datasend(a) 最佳答案 是的,您可以像这样发送原始数据。在这个例子中,数据将被ASCII编码。>>>data='UniversityofTexasatSanAntonio'>>>a=IP(dst='129.132.2.21')/TCP()/Raw(load=data)>>>send(a)
我正在使用scapy和python来嗅探实时流量。capture=sniff(iface="",filter="tcp")但这会嗅探每个数据包并将其添加到列表capture中,稍后可以处理。我想处理一个数据包并在它被嗅探后立即显示数据包的几个字段。即在嗅探数据包时,它会触发一个函数,我可以在其中分析该数据包。这将持续几个数据包。我已经准备好与捕获的数据包列表一起使用的功能。但我无法将它用于每个实时数据包。如何实现?是否可以使用scapy或者我是否需要安装任何其他包? 最佳答案 嗅探函数的参数应该像下面的代码:fromscapy.al
使用python数据包解析/嗅探工具Scapy,我想从原始字节串创建一个数据包。虽然我的具体用例的细节更为现实,但以下示例说明了我的问题和我目前的尝试:#Getanexamplepacket(wewon'treallyhaveanofflinefileinproduction.)pkt=sniff(offline="./example_packets/example_packets2.pcap")#Convertittorawbytes--oddly__str__doesthis.raw_packet=str(pkt)#Current,broken,attempttoconstruct
我在jython下导入scapy时遇到了一些问题。我一直在做java,但只学了一两天python。重现问题的简单案例是:$jython>>>importsys>>>sys.path['','/usr/share/jython/Lib','/usr/lib/site-python','__classpath__']>>>fromscapy.allimport*Traceback(innermostlast):File"",line1,in?ImportError:nomodulenamedscapy如果我在python下执行这些完全相同的步骤,一切正常。我如何告诉jython使用scap