我正在实现基于Raw套接字的代码。为了接收即将到来的以太网帧,我必须将我创建的套接字绑定到以太网接口。就我而言,唯一的方法是使用带有SO_BINDTODEVICE选项的setsockopt()函数。
问题是我使用的FreeBSD不支持这样的选项。是否有任何补丁可用于启用此功能或任何其他可信任的替代方案?
答案 0 :(得分:0)
如果您使用的是IPv6,则可以使用sendto
,请参阅this example。
不幸的是,这不适用于IPv4。
正如antiduh所说,只要您可以访问/dev/bpf
(通常仅限于root
),就可以使用libpcap来捕获数据包。