Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 蟒蛇不嗅_Python_Scapy - Fatal编程技术网

Python 蟒蛇不嗅

Python 蟒蛇不嗅,python,scapy,Python,Scapy,当我运行脚本时,scapy不会监听界面,它只是打印出以下错误: 回溯(最近一次呼叫最后一次): 文件“keylogger.py”,第91行,在 嗅探数据包(scapy_表达式、目标_站点) 文件“keylogger.py”,第15行,在sniff_包中 嗅探(filter=scapy\u表达式,prn=sniffer\u回调(目标站点),store=0,iface=“eth0”) TypeError:sniffer_callback()只接受2个参数(给定1个) 发生错误的代码如下(嗅探的表达式

当我运行脚本时,
scapy
不会监听界面,它只是打印出以下错误:

回溯(最近一次呼叫最后一次): 文件“keylogger.py”,第91行,在 嗅探数据包(scapy_表达式、目标_站点) 文件“keylogger.py”,第15行,在sniff_包中 嗅探(filter=scapy\u表达式,prn=sniffer\u回调(目标站点),store=0,iface=“eth0”) TypeError:sniffer_callback()只接受2个参数(给定1个)

发生错误的代码如下(嗅探的表达式)

这是回调函数:

    def sniffer_callback(packet, target_site):

            print "[*] Got a packet"

我不知道为什么
scapy
不听电线。感谢您的帮助。

问题是:
prn=sniffer\u回调(目标站点)
。您使用一个参数调用
sniffer\u callback
,这是错误的


它可能是:
prn=sniffer\u callback
。因为它是一个回调函数,
sniffer\u callback
应该从函数
sniff
内部的某个地方调用。因此,您将函数本身作为参数,而不是它已计算的值。

这真的比将第二个参数传递给
嗅探器回调(target\u site)
更复杂吗?我厌倦了任何看起来如此简单的答案,但它看起来像是将
prn=sniffer\u回调(target\u site)
更改为
prn=sniffer\u回调
实际上会让我尝试另一种方法,看起来您正在传递函数
sniffer\u回调(target\u site)
(这不起作用,因为您定义了
sniffer\u callback()
以接受两个参数而不是一个),但正确的使用方法是传递函数yes,但sniffer\u回调会自动将数据包作为参数传递,因此当它使用prn=sniffer\u回调(target\u site)时它通过了目标站点,然后packet加上sniffer函数将在调用嗅探器函数之前工作。一旦接收到一个数据包,它就会出错。如果
sniffer\u回调(target\u site)
返回了一个函数,那么我将看到它是如何工作的,但是作为
sniffer\u回调()
已定义,它将返回
None
(不存在返回的任何def的默认值)@Jason Sperske是的,我们已并行回答。
    def sniffer_callback(packet, target_site):

            print "[*] Got a packet"