Я создаю анализатор пакетов в python, используя scapy, теперь я хочу отфильтровать полученные http-пакеты и извлечь из них URL-адрес (Host + Path), но моя программа вылетает с сообщением: File "packet_sniffer.py", строка 4, из scapy.layers.http import * ImportError: Нет модуля с именем http
При вводе http-импорта scapy layer я могу автоматически завершить часть http, так что кажется, что она распознает ее, но при запускепроисходит сбой.
Я пробовал использовать другой синтаксис в моем разделе кода, например, используя "scapy.http.HTTPRequest" "scapy.layers.http.HTTPRequest"
#!/usr/bin/env python
import scapy.all as scapy
from scapy.layers.http import *
def sniff(interface):
scapy.sniff(iface=interface,
store=False,
prn=process_sniffed_packet,
lfilter=lambda p: "POST" in str(p),
filter="tcp port 80")
def process_sniffed_packet(packet):
url = packet[scapy.layers.http.HTTPRequest].Host + packet[scapy.layers.http.HTTPRequest].Path
print(url)
Есть ли проблемас моим модулем импорта или с кодом?
** Обратите внимание, я использую scapy 2.4.3