Sockets SO_BINDTODEVICE对FreeBSD的选项支持

Sockets SO_BINDTODEVICE对FreeBSD的选项支持,sockets,freebsd,raw-sockets,Sockets,Freebsd,Raw Sockets,我正在实现一个基于原始套接字的代码。为了接收即将到来的以太网帧,我必须将我创建的套接字绑定到以太网接口。就我而言,实现这一点的唯一方法是通过setsockopt()函数和选项SO_BINDTODEVICE 问题是我使用的FreeBSD不支持这种选项。是否有任何修补程序可用于启用此功能或任何其他受信任的替代方案?如果使用IPv6,可以使用sendto,请参阅。 不幸的是,这不适用于IPv4 正如antiduh所说,只要您有权访问/dev/bpf(通常限制为root),就可以使用libpcap捕获数

我正在实现一个基于原始套接字的代码。为了接收即将到来的以太网帧,我必须将我创建的套接字绑定到以太网接口。就我而言,实现这一点的唯一方法是通过setsockopt()函数和选项SO_BINDTODEVICE


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

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

正如antiduh所说,只要您有权访问
/dev/bpf
(通常限制为
root
),就可以使用libpcap捕获数据包