我用Scapy用以下代码嗅探网络流量:
from scapy.all import *
import sys
filter = sys.argv[1]
def Responder():
def getPacket(pkt):
if Raw in pkt: print pkt[Raw]
return getPacket
sniff(filter=filter, prn=Responder())
如果我只是浏览一个网站,这个代码可以正常工作。在
问题是,当我打开连接共享并尝试运行此脚本时,会出现以下错误:
^{pr2}$我试图在脚本的顶部添加"conf.iface=en1"
。这就产生了同样的错误。en1是一个有效的接口。在
我也遵循了here的建议,并更改了arch/unix.py版在第34行从“os.popen("netstat -rn")
”到“os.popen("netstat -rn | grep -v vboxnet")
”。这没能解决问题。在
我运行的是OSX10.10.3,我花了很多时间试图让scapy工作。我试着在scapy、scapyreal、dnet、dnetreal上使用pip安装,但仍然得到相同的错误。它变得非常令人沮丧,所以我听从了上面亚当B的建议,并认为我应该添加一个包含unix.py版需要更改的文件。在
在/usr/local/lib/python2.7/site-packages/scapy/arch/open中unix.py版使用vim、nano或其他文本编辑器。在
将第37行改为
四季酒店=os.popen公司(“netstat-rn | grep-v vboxnet”)#-f inet
它应该对你有用。我仍然得到一个错误:python gnuplot包装器不能导入,PyX也不能导入。在
看来scapy在处理网桥接口时遇到了麻烦。我也遇到了同样的问题,只需过滤掉互联网共享网桥接口就可以了。在这种情况下,right fix将用
"netstat -rn | grep -v vboxnet | grep -v bridge"
替换相同的字符串我运行的是OSX 10.5.9—花了很多时间让scapy工作—在安装了dnet/pcap库之后,我得到了OSError:设备不是配置“太。尝试更换中的第34行unix.py版与
"netstat -rn | grep -v vboxnet"
还是有同样的错误。但当我在if块的“else”部分改为第37行时:
工作起来很有魅力!在
相关问题 更多 >
编程相关推荐