2013-06-24 47 views
2

我基于原始套接字implemneting代码。为了接收即将到来的以太网帧,我必须将创建的套接字绑定到以太网接口。只有这样,才能做到这一点,就我本人而言,是通过调用setsockopt()的选项SO_BINDTODEVICE功能。SO_BINDTODEVICE选项支持FreeBSD的

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

+1

为什么不使用libpcap的? – antiduh

回答

0

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

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