python socket.PF_PACKET使用

2 投票
1 回答
4156 浏览
提问于 2025-04-16 04:35

我正在尝试用Python发送一个ARP请求,使用的是dpkt库。我找到了一些示例代码,其中用到了:

socket.socket(socket.PF_PACKET, socket.SOCK_RAW)

我明白发送这个请求需要使用原始套接字,但它说socket.PF_PACKET不存在。而我在Python的文档中没有看到关于它的任何信息。那么,这个人是从哪里得到PF_PACKET的,它有什么作用,我该如何获取它呢?

1 个回答

2

我更新了一下我的回复:

PF_PACKET是在Linux 2.0及以上版本中引入的。Python只是对操作系统的socket接口进行了封装。AaronMcSmooth的评论确认了它在Linux上是可用的。不过在Mac上是不可用的。

另外,看起来在3.2版本中,AF_PACKET可能会被优先使用。

撰写回答