首页 > 解决方案 > python AttributeError:模块'scapy.layers.http'没有属性'HTTPREQUEST'

问题描述

我正在尝试运行此代码来嗅探网络流量并打印出请求的“主机”部分。

#!/usr/bin/env python
import scapy.all as scapy
from scapy.layers import http

def sniff(interface):
    scapy.sniff(iface=interface, store=False, prn=process_sniffed_packet)

def process_sniffed_packet(packet):
    if packet.haslayer(http.HTTPRequest):
        url = packet[http.HTTPREQUEST].Host
    
sniff("eth0")

这是错误:

Traceback (most recent call last):
  File "sniffer_05.py", line 21, in <module>
    sniff("eth0")
  File "sniffer_05.py", line 6, in sniff
    scapy.sniff(iface=interface, store=False, prn=process_sniffed_packet)
  File "/usr/lib/python3/dist-packages/scapy/sendrecv.py", line 972, in sniff
    sniffer._run(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/scapy/sendrecv.py", line 925, in _run
    session.on_packet_received(p)
  File "/usr/lib/python3/dist-packages/scapy/sessions.py", line 47, in on_packet_received
    result = self.prn(pkt)
  File "sniffer_05.py", line 10, in process_sniffed_packet
    url = packet[http.HTTPREQUEST].Host
AttributeError: module 'scapy.layers.http' has no attribute 'HTTPREQUEST'

不知道我错过了什么。

标签: pythonhttpscapy

解决方案


类是http.HTTPRequest而不是http.HTTPREQUEST


推荐阅读