0

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

回溯(最近一次调用最后):文件“keylogger.py”,第 91 行,在 sniff_packets(scapy_expression, target_site) 文件“keylogger.py”,第 15 行,在 sniff_packets sniff(filter=scapy_expression, prn=sniffer_callback(target_site), store=0, iface="eth0") TypeError: sniffer_callback() 正好需要 2 个参数(1 个给定)

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

def sniff_packets(scapy_expression, target_site):
    sniff(filter=scapy_expression, prn=sniffer_callback(target_site), store=0, iface="eth0")

这是回调函数:

    def sniffer_callback(packet, target_site):

            print "[*] Got a packet"

我不知道为什么scapy不听电线。任何帮助表示赞赏。

4

1 回答 1

1

问题是:prn=sniffer_callback(target_site)。你sniffer_callback用一个参数打电话,这是错误的。

应该是:prn=sniffer_callback. 因为它是一个回调函数,所以sniffer_callback应该从 function 内部的某个地方调用sniff。因此,您将函数本身作为参数,而不是它计算的值。

于 2013-03-12T22:19:42.247 回答