gpt4 book ai didi

python - 是否可以以编程方式从数据包创建请求?

转载 作者:行者123 更新时间:2023-12-04 08:57:18 25 4
gpt4 key购买 nike

对于我正在制作的脚本,我需要能够查看随请求发送的参数。
这可以通过 Fiddler 实现,但我正在尝试自动化该过程。
Here是一些截图开始。正如您在 Fiddler 的第一张图片中看到的,我可以看到请求的 URL 以及随该请求发送的参数。
我尝试使用下面的代码使用 scapy 进行一些数据包嗅探,看看是否可以获得类似的结果,但我得到的是第二张图片。基本上,我可以将数据包的源和目标作为 IP 地址,但数据包本身只是字节。

def sniffer():
t = AsyncSniffer(prn = lambda x: x.summary(), count = 10)
t.start()
time.sleep(8)
results = t.results
print(len(results))
print(results)
print(results[0])
据我了解,在我们建立 TCP 连接后,请求被分解成几个 IP 数据包,然后发送到目的地。我希望能够复制 Fiddler 的功能,在那里我可以看到请求的 url,然后是发送过来的参数值。
仅通过从数据包中收集的信息重新创建请求信息是否可行?
或者这个区别是因为嗅探是在第2层完成的,然后可能Fiddler在翻译成IP数据包之前/之后在第3/4层操作,所以它实际上看到了原始请求本身的内容和结果数据包组合?如果我的理解有误,请纠正我。
基本上,我的问题归结为:“是否有一个 python 模块可以用来复制 Fiddler 的功能来识别请求的目标 url 以及与该请求一起发送的参数?”

最佳答案

嗅探到的流量是 HTTPS 流量 - 因此仅通过嗅探您不会看到有关 HTTP 请求/响应的任何详细信息,因为它是通过 SSL/TLS 加密的。
Fiddler 是一个具有 HTTPS 拦截功能的代理,这与在网络级别嗅探流量完全不同。这意味着对于客户端应用程序 Fiddler“模仿”服务器,而对于服务器 Fiddler 模仿客户端。这允许 Fiddler 解密请求/响应并将它们显示给您。
如果您想在 python 级别执行请求拦截,我建议您使用 mitmproxy而不是 fiddler 。此代理也可以执行 HTTPS 拦截,但它是用 Python 编写的,因此更容易集成到您的 Python 环境中。
或者,如果您只想查看 Python 程序的请求/响应详细信息,则通过以适当的方式设置日志级别可能会更容易。例如看这个问题:Log all requests from the python-requests module

关于python - 是否可以以编程方式从数据包创建请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63746333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com