对FreeBSD的SO_BINDTODEVICE选项支持

时间:2013-06-24 17:23:39

标签: sockets freebsd raw-sockets

我正在实现基于Raw套接字的代码。为了接收即将到来的以太网帧,我必须将我创建的套接字绑定到以太网接口。就我而言,唯一的方法是使用带有SO_BINDTODEVICE选项的setsockopt()函数。

问题是我使用的FreeBSD不支持这样的选项。是否有任何补丁可用于启用此功能或任何其他可信任的替代方案?

1 个答案:

答案 0 :(得分:0)

如果您使用的是IPv6,则可以使用sendto,请参阅this example。 不幸的是,这不适用于IPv4。

正如antiduh所说,只要您可以访问/dev/bpf(通常仅限于root),就可以使用libpcap来捕获数据包。