1

我从这里有一个扭曲的代理: Python Twisted proxy - 如何拦截数据包

它打印 HTTP 数据,我还想拦截和检查原始 IP 数据报。如何挂钩 IP 数据包的回调?

http://twistedmatrix.com/documents/11.0.0/api/twisted.pair.ip.IPProtocol.html

4

2 回答 2

1

Twisted 不包括对 IP 级别操作的全面支持。正如您所发现的,对解析 IP 数据报有一些支持,但没有内置支持挂钩到平台支持以发送或接收这些数据报。

你可能想看看scapy

于 2012-05-22T18:00:37.943 回答
1

Twisted 没有内置的友好方式来挂钩原始 IP 套接字 (SOCK_RAW) 上的侦听器。这有几个原因:

  • 使用 SOCK_RAW 可能会很棘手,而且它可以以不明显的方式工作;
  • 在大多数环境中,使用这样的套接字需要提升权限;
  • 并且您实际上通过原始套接字获得的数据包在操作系统之间有很大差异(例如,即使您是root,您也不会通过原始套接字在*BSD/Darwin 上获得任何原始TCP 协议IP 数据包)。

一般来说,以远程可移植方式捕获原始数据报的最佳方法是使用 libpcap。是一个似乎以相当智能的方式结合了 pcap 和 Twisted 的人的链接;这可能会有所帮助。

于 2012-05-22T18:01:02.530 回答