【发布时间】:2019-11-04 12:43:54
【问题描述】:
我正在使用 scapy 在 python 中构建数据包嗅探器,现在,我想过滤接收到的 http 数据包并从中提取 url(主机 + 路径),但我的程序崩溃并显示消息:文件“packet_sniffer.py” ,第 4 行,在 从 scapy.layers.http 导入 * ImportError: 没有名为 http 的模块
当键入 scapy 层 http 导入时,我可以自动完成 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
【问题讨论】:
标签: python http scapy packet-sniffers