运行此脚本时出错:
from scapy.all import *
sn = sniff(filter="http", count=30)
wireshark(sn)
这是一个错误:
WARNING: No route found for IPv6 destination :: (no default route?)
WARNING: Please, report issues to https://github.com/phaethon/scapy
Traceback (most recent call last):
File "arp1.py", line
我使用的是Python 2.7.9和scapy (2.2.0)
当直接与scapy或Python交互式shell交互并嗅探数据包时,我通常可以使用IP来提取源和目标IP,但当尝试将代码放入.py文件中然后运行:
python file.py
上面写着:
NameError: global name 'IP' is not defined
file.py
from scapy.all import *
def main():
sniffed=sniff(iface='eth0',count=10)
print (sniffed[1][IP].sr
我希望这是微不足道的,但我无法使它发挥作用。
我想用Python中的替罪羊发送伪造的ARP,但是在这个场景中我也需要伪造源MAC地址(vmac、vip、rip都是有效值)。
op = 1
who_has_router = Ether(src=vmac)/ARP(op=op,psrc=vip,pdst=rip,hwsrc=vmac)
send(who_has_router)
以上内容在Wireshark中显示为格式错误的数据包,被网络上的每个人忽略。
如果我删除了Ether()层,它就能正常工作(但是它不会欺骗源mac,因此在本例中不够好):
# This works exactly as ex
我目前正在使用python实现一个基本的流量采样器,我想知道如何有效地实现每次捕获之间的采样器间隔。我没有使用sFlow,因为我想在我的NIC上采样流量。
我看过scapy,但它似乎没有提供采样功能。因此,在附加到嗅探的处理功能(例如,嗅探(prn=XXX))中,我是否应该实现自己的计时器来检查是否应该特别处理数据包?
#Packet sniffer in python
#For Linux
import socket
#create an INET, raw socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket
我想使用Python解码pcap中数据包的链接层类型和版本。因此,我必须使用Python解析pcap。这是我的密码。
import dpkt
import socket
import sys
f = open('filename')
pcap = dpkt.pcap.Reader(f)
for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data
print ts, len(buf)
print eth
print ip
pri
我有个问题。
如何通过使用dpkt库和来自pcap文件的每个主机名的ts来获得get和HTTP/1.0 200OK之间的响应时间差(我是指web服务器的时间延迟)?
我的初步代码:
#!/usr/bin/env python
import dpkt
f = open('mycapture.cap')
pcap = dpkt.pcap.Reader(f)
for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data
if tcp.dpor