Как получить поддержку http в Scapy - PullRequest
0 голосов
/ 04 ноября 2019

Я создаю анализатор пакетов в 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

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Как насчет использования библиотеки scapy_http, заменив from scapy.layers.http import * на from scapy_http import *, как this

0 голосов
/ 04 ноября 2019

Убедитесь, что вы используете Scapy 2.4.3

...