gongyf1977 发表于 2013-01-07 16:02

linux下多块网卡抓包的问题

我的服务器有多块网卡,连着多个不同的网段,我想在其中一个网卡eht1上抓mac包,现在可以用raw socket抓到mac帧,但是好像两块网卡的包都被抓到了,怎么设置让raw socket只抓eth1上的mac包。

有人提出用
setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, “eht0”, 4);
函数绑定,但我试过了好像不管用。

Cyberman.Wu 发表于 2013-01-07 17:31

最好给出代码。

你是用于做什么的,是自己实现一个特定的功能,还是单纯想抓包?在Linux上抓包的话还是用PF_PACKET更好一些,Raw socket应该有一些限制,许多包不能抓上来。PF_PACKET可以指定网口,Raw socket没怎么用过不清楚,不过你实在要用raw socket,可以看一下内核中相关的代码,原来我用PF_PACKET时在网上找到的例子部分是错的,最后还是看内核中的实现搞定怎么用了。不管是raw socket还是PF_PACKET,内核中相关部分比较简单。
页: [1]
查看完整版本: linux下多块网卡抓包的问题