Я получаю сообщение об ошибке при использовании пакета sniff с помощью scapy - PullRequest
0 голосов
/ 28 мая 2020

Мой код здесь:

#!/usr/bin/env python3
import os
print(os.sys.path)
from scapy.all import*
def sniff(interface):
    scapy.sniff(iface=interface, store=False, prn=process_sniffed_packet)

def process_sniffed_packet(packet):
    print(packet)

sniff("eth0")

И получил такой код ошибки:

python3 row.py

['/home/kali/Desktop', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.7/dist-packages']
Traceback (most recent call last):
  File "row.py", line 11, in <module>
    sniff("eth0")
  File "row.py", line 6, in sniff
    scapy.sniff(iface=interface, store=False, prn=process_sniffed_packet)
AttributeError: module 'scapy' has no attribute 'sniff'

Может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 28 мая 2020

Вы только что импортировали все доступные функции из scapy с помощью from scapy.all import *, что означает, что вам нужно использовать sniff вместо scapy.sniff

Если вы хотите использовать scapy.sniff, вы должны изменить свой импорт на import scapy.all as scapy

Примечание. В scapy.all есть функция sniff, но вы определяете новую функцию sniff (строка 5). Переименуйте его, чтобы избежать конфликтов имен.

#!/usr/bin/env python3
import os
print(os.sys.path)
from scapy.all import *
def mysniff(interface):
    sniff(iface=interface, store=False, prn=process_sniffed_packet)

def process_sniffed_packet(packet):
    print(packet)

mysniff("eth0") 
...