【发布时间】:2016-06-19 18:18:36
【问题描述】:
我想使用 Python 来捕获 Ubuntu 网络上的所有 IP 数据包。通过使用下面的代码,我得到了所有带有以太网头的数据包。如何去掉以太网报头,直接获取 IP 数据包?
s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW , socket.ntohs(0x0003))
while True:
packet = s.recvfrom(65565)
【问题讨论】:
-
Ethernet frame format 是众所周知的,如果您有 Ethernet frame,您可以轻松获取有效负载(即 IP 数据包)。
-
谢谢。但是我的意思是有没有办法直接获取原始IP数据包,而不是在获取以太网数据包后进行其他处理?
标签: python linux ubuntu network-programming