当前位置: 技术问答>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机制就能很轻松的达到
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。