python - 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'
不知道我错过了什么。
解决方案
类是http.HTTPRequest
而不是http.HTTPREQUEST
推荐阅读
- html - 无法将光标放在内容可编辑 div 中的非内容可编辑 div 前面
- android - 新的 Android 应用可以替换 Play 商店中的现有应用吗?
- sql - 使用正则表达式在红移中用逗号和引号分割字符串
- c++ - 要求用户输入一个整数,如果它不是整数,要求用户重新输入值 c++
- android - 如何使用 okhttp DnsOverHttps 包使用多个 DoH 提供程序?
- python - Python 通过 ssh 和 paramiko 运行多个命令,从其中一个获取输出
- oracle - Oracle Apex 将校验和错误更改为 404 Page Not Found
- javascript - JQuery 和 AJAX 表单验证不起作用
- bash - rsync:读取错误:对等方重置连接(104)
- git - 如何删除旧的有问题的 git 提交