显然,我们可以很容易地用如下套接字嗅探网络:
socket.socket(socket.PF_PACKET,socket.SOCK_RAW,socket.htons(0x0003)
socket.recv(65535)
我想link layer
在仅导入时识别地址类型socket
and struct
,但链接层没有出现在套接字中,原因很明显。我是否需要编写一个针对较低层的共享库?
RFC 1122/1123 地址链路层类型和链路层地址。
更新:
我知道我可以将它作为 pcap 读取并获取链路层信息(即dpkt
有一个调用的函数pcap.datalink()
将返回链路层类型,而不是链路层地址)但我仍然不确定如何从原始端口读取它(即 eth0),在 python 中,用于 windows 和/或 linux。