草庐IT

python - 访问 Scapy 的内部协议(protocol)层

我正在用Python编写我的第一个程序。我正在使用第三方工具包与网络数据包进行交互(Scapy)。当我使用这个方法时:p=sr1(IP(dst="google.com")/TCP())结果是:>>我可以通过p.chksum访问IP的chksum,但是如何访问chksumTCP? 最佳答案 作为一般准则,您应该使用>>>p[TCP].chksum然而,这仅适用于接收到的数据包,因为校验和是在传输时计算的。您可以使用show2()方法检索未传输数据包的校验和。 关于python-访问Scap

Python scapy 显示 ping (echo) 请求的 ip

我想抓取并打印ping请求的源地址。我有以下脚本:pkt=sniff(filter="icmp",timeout=15,count=15)ifpkt[ICMP].type=='8':printpkt[IP].src当数据包到达时脚本崩溃AttributeError:'list'objecthasnoattribute'type'但是在scapy控制台上我可以清楚地看到它存在!>>>packet=IP()/ICMP()/"AAAAAA">>>packet[ICMP].type8>>>有什么想法吗??我出于测试目的(!)将我的脚本更改为以下内容:pkts=sniff(filter="icm

python - Scapy TCP RST 攻击

我尝试用Scapy编写TCPRST攻击,但我的代码不起作用。请帮我解决我的问题。fromscapy.allimport*defpoison(packet):packet[TCP].flags='RST'sendp(packet)sniff(filter='tcp',prn=poison)flags有问题,我想。有一个错误:Traceback(mostrecentcalllast):File"Univer.py",line6,insniff(filter='tcp',prn=poison)File"/usr/lib/pymodules/python2.6/scapy/sendrecv.p

networking - 获取数据包的源地址和端口号 - Scapy 脚本

我正在嗅探网络并尝试在每个tcp数据包上获取IP地址和端口号。我将scapy与python一起使用,可以成功嗅探数据包,并且在回调函数中甚至可以打印数据包摘要。但我想做更多,比如只获取源的IP地址及其端口号。我怎样才能完成它?下面是我的代码:#!/usr/bin/evnpythonfromscapy.all.import.*defprint_summary(pkt):packet=pkt.summary()printpacketsniff(filter="tcp",prn=packet_summary)请提出一种只打印每个数据包的源IP地址的方法。谢谢。 最

python - Scapy:如何获取完整的 IP 数据包 header ?

在Scapy中,我想手动将数据包与其对应的ICMP超时消息匹配。我需要匹配:ICMP数据包的IP-in-ICMP字段我的数据包的IPheader和前8个字节ICMP数据包不是问题:icmpPayload=str(icmpPacket[ICMP].payload)对于数据包的前8个字节,我只需要做:str(myPacket[IP].payload)[:8]我不知道如何仅获取myPacket的IPheader。我现在所做的就是用它的前8个字节替换整个数据包中的有效负载。如果应用于数千个数据包,这种搜索和替换可能会花费太长时间,恐怕:strOfMyPacket=str(myPacket[IP

python - 使用 scapy、iftop 样式计算每个 IP 的带宽使用情况

我正在使用scapy嗅探镜像端口并生成前10个“谈话者”的列表,即在我的网络上使用最多带宽的主机列表。我知道工具已经可用,例如iftop和ntop,但我需要对输出进行更多控制。以下脚本对流量采样30秒,然后以“源主机->目标主机:字节”的格式打印前10个用量最大的列表。这很好,但我如何计算平均每秒字节数?我觉得将sample_interval更改为1秒并不能很好地对流量进行采样,因此我似乎需要对其进行平均。所以我在脚本末尾尝试了这个:bytespersecond=(totalbytes/sample_interval)但生成的Bytes/s似乎要低得多。例如,我以1.5MB/s的节流速

python - 在 scapy 中发送 ICMP 数据包并选择正确的接口(interface)

我们可以对第3层ICMP数据包使用srp()函数吗?我看到当我们制作一个ICMP回显请求数据包并使用sr()发送/接收时,我们没有看到它被发送出接口(interface),因此没有来自目的地的响应。但是如果我们使用srp()函数,我们会看到相同的数据包响应。我们什么时候应该使用sr()什么时候使用srp()?在文档中它声明sr()用于L3数据包和srp()用于L2?但就我而言,我不确定为什么sr()不适用于ICMP数据包?有高手能帮我理解一下吗?也有人可以让我知道是否始终需要“iface”参数。否则scapy将如何知道它应该通过哪个接口(interface)发送数据包?案例1:以ifa

python - Scapy 在使用多线程时无法嗅探数据包

我会尝试用一个简化的例子来证明我的问题。以下是一个非常简单的(单线程)数据包嗅探器(ICMP):fromscapy.allimport*m_iface="wlan0"m_dst="192.168.0.1"defprint_summary(pkt):printpkt.summary()defplain_sniff():sniff(iface=m_iface,count=10,filter="icmpandsrc{0}".format(m_dst),prn=print_summary)这个嗅探器工作得很好,我得到了输出:WARNING:NoroutefoundforIPv6destinat

python - 使用 Scapy ping IP 范围

我正在尝试编写一个Python脚本,该脚本使用Scapy模块来ping内部IP范围以确定哪些IP在线。到目前为止我已经知道了:#!/usr/bin/pythonfromscapy.allimport*conf.verb=0foripinrange(0,256):packet=IP(dst="192.168.0."+str(ip),ttl=20)/ICMP()reply=sr1(packet)if"192.168."inreply.src:printreply.src,"isonline"程序会静置一段时间什么都不做,然后如果我用CTRL+C终止它,我会收到一条错误消息:Tracebac

python - Scapy 和 rdpcap 函数

我正在使用Scapy的rdpcap函数来读取PCAP文件。我还使用了linktoHTTPsupportinScapy中描述的模块这在我的案例中是必需的,因为我必须检索所有HTTP请求和响应及其相关数据包。我注意到rdpcap函数解析大型PCAP文件需要花费太多时间来读取它。是否有更快读取pcap文件的解决方案? 最佳答案 Scapy还有另一种方法sniff,你也可以用它来读取pcap文件:defmethod_filter_HTTP(pkt):#Yourprocessingsniff(offline="your_file.pcap",