繁体   English   中英

Scapy 中的 HTTPResponse 数据包只有部分响应

[英]HTTPResponse packet in Scapy only has partial response

我有以下代码来使用 Scapy 嗅探 HTTPRequest 和 HTTPResponse:

from scapy.all import *
from scapy.layers.http import *
from bs4 import BeautifulSoup


def inspect(a):
    if HTTPRequest in a:
        print("\n{} ----HTTPRequest----> {}:{}:\n{}".format(a[IP].src, a[IP].dst, a[IP].dport, str(bytes(a[TCP].payload))))
    if HTTPResponse in a:
        response = str(bytes(a[TCP].payload))
        soup = BeautifulSoup(response, "html.parser")
        print("\n{} ----HTTPResponse----> {}:{}:\n{}".format(a[IP].src, a[IP].dst, a[IP].dport, soup))

sniff(prn=inspect)

但是响应仅包含部分 HTTP 响应。 我如何获得其余的回复。

请指教。

因为 HTTP 帧是在多个 TCP 帧上分段的。 您只需要

>>> sniff(prn=inspect, session=TCPSession)

(见https://scapy.readthedocs.io/en/latest/usage.html?highlight=tlssession#advanced-sniffing-sniffing-sessions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM