当前位置: 技术问答>linux和unix
如何知道接收到的广播包是从哪个网络端口接收到的?
来源: 互联网 发布时间:2016-06-04
本文导语: 我的机器上有两块网卡, 当我接收到一个广播包之后, 我怎么知道是从哪个网卡上接收到的? | 如果是kernel space的代码,通过skb->dev就可以知道是那个设备上提交过来的包了。 user space的代码...
我的机器上有两块网卡, 当我接收到一个广播包之后, 我怎么知道是从哪个网卡上接收到的?
|
如果是kernel space的代码,通过skb->dev就可以知道是那个设备上提交过来的包了。
user space的代码,如果你的socket是IP层的raw的话,应该要在receive前把网卡bind到socket里,此后只能收此卡和socket函数指定协议的报文了,其它socket类型应该类似!
如果是用tcpdump来抓包的话,请使用-e选项来显示报文的mac地址,又或者只tcpdump一个网卡。
...
FYI
user space的代码,如果你的socket是IP层的raw的话,应该要在receive前把网卡bind到socket里,此后只能收此卡和socket函数指定协议的报文了,其它socket类型应该类似!
如果是用tcpdump来抓包的话,请使用-e选项来显示报文的mac地址,又或者只tcpdump一个网卡。
...
FYI
|
sk_buff关联了网卡设备,linyt网友讲对了。
|
用LINUX下面的Netfilter机制就能很轻松的达到