gpt4 book ai didi

python - 在网卡处停止数据包

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:48 26 4
gpt4 key购买 nike

这就是我要解决的问题,

我想编写一个应用程序来读取同一台机器网卡上的出站 http 请求数据包。然后这将能够从中提取 GET url。根据此信息,我希望能够停止数据包,或重定向它,或让它通过。

但是我希望我的应用程序以混杂模式运行(就像 wireshark 那样),并且能够吃掉(停止)出站数据包。

我已经搜索了一下这个..

libpcap/pcap.h 允许我在网卡上读取数据包,但是我还没有找到停止这些数据包或将新数据包注入(inject)网络的方法。

某些东西,例如 python 中的 twisted 或 scapy,允许我设置一个监听某个本地端口的服务器,然后我可以使用代理配置配置我的浏览器以连接到它。然后这个应用程序可以做这些事情..但我的主要目的是混杂在这里失败了..

任何有关我如何实现这一目标的帮助将不胜感激..

最佳答案

我建议您在应用层处理此问题并使用透明代理(例如 squid )和基于 iptables 的出站端口 80 流量拦截。

我建议这样做的原因是它可以避免在数据包之间拆分请求的问题。

但是,如果您仍想继续进行数据包拦截,您可以在用户空间使用 netlink 中的 netfilters 来完成。 .我相信 libnl 有 python 包装器周围。

本质上,您为要拦截的流量创建指向“QUEUE”的 iptables 规则,并使用 netlink 库编写程序来处理队列,接受、拒绝和/或修改数据包。

关于python - 在网卡处停止数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072506/

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