Когда я запускаю скрипт, 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
не слушает провод. Любая помощь приветствуется.
sniffer_callback(target_site)
? Я устал от любого ответа, который кажется таким простым, но похоже, что изменениеprn=sniffer_callback(target_site)
наprn=sniffer_callback
действительно сработает. - person Jason Sperske   schedule 13.03.2013sniffer_callback(target_site)
(которая не работает, потому что вы определилиsniffer_callback()
для приема 2 аргументов вместо одного), но правильный способ использовать это - передать функция - person Jason Sperske   schedule 13.03.2013sniffer_callback(target_site)
вернул функцию, я бы посмотрел, как это может работать, но посколькуsniffer_callback()
определено, оно вернетNone
(по умолчанию для любого определения, где возврата нет) - person Jason Sperske   schedule 13.03.2013def sniffer_callback(a, b): print a+":"+b
, затем попробуйте связать ее, передав только один:prn = sniffer_callback('prn')
, вы увидите ту же ошибку. - person Jason Sperske   schedule 13.03.2013