[英]How to specify a scapy startup file?
我使用带有 -c 命令行选项的 scapy 来加载启动文件:
# liquidsoap debug
streamerIP = "192.168.0.53"
dump= []
def filterStreamer(pkt):
if pkt.src == streamerIP or pkt.dst == streamerIP:
dump.append(pkt)
sniff(prn=filterStreamer)
ls(dump)
它给:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/scapy/main.py", line 30, in _read_config_file
execfile(cf)
File "icecast-debug.py", line 9, in <module>
sniff(prn=filterStreamer)
File "/usr/lib/python2.7/dist-packages/scapy/sendrecv.py", line 586, in sniff
r = prn(p)
File "icecast-debug.py", line 6, in filterStreamer
if (pkt.src == streamerIP or pkt.dst == streamerIP):
NameError: global name 'streamerIP' is not defined
Welcome to Scapy (2.2.0)
在控制台中,我看到的 streamerIP 也没有转储,但最有趣的是 filterStreamer 作为函数没有定义。 但是,如果我不通过 filterStreamer 进行嗅探,它就会开始嗅探。 所以就像一行一行的解释代码,在所有的行解释之后清除范围。
您必须使用global
关键字。 此外,使用PacketList()
而不是列表。 并且ls()
不适用于列表,但如果您使用PacketList()
,则您拥有.summary()
方法。
streamerIP = "192.168.0.53"
dump = PacketList()
def filterStreamer(pkt):
global streamerIP, dump
if pkt.src == streamerIP or pkt.dst == streamerIP:
dump.append(pkt)
dump.summary()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.