如何知道收到的udp包是哪块网卡收的?

Koalar 2005-04-29 08:47:02
一台电脑有多个ip,程序里建立了一个在ADDR_ANY(所有ip地址)上侦听某个udp端口的socket,收到包以后想知道收到了包是这台机器的的哪个网卡收的,但该socket的ip是0.0.0.0,如何实现?注意,不是要知道远端机器的ip地址,而是要知道接收这个包的本机望卡的确切ip,而且不能通过和远端机器的ip比较来确定,因为有些udp包(比如dhcp请求)的来源地址是0.0.0.0
...全文
173 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabo 2005-04-30
  • 打赏
  • 举报
回复
在IP头里面,有源MAC地址和目的MAC地址。IP头就在UDP头前面,一般好像是20个字节,忘了哈。
Koalar 2005-04-29
  • 打赏
  • 举报
回复
有些是广播包,不能通过目的ip查询
fisker0303 2005-04-29
  • 打赏
  • 举报
回复
如果能搞到网络层的包就好办了,包头里就有目的IP和PORT,用sniffer技术来实现。
liuduofu 2005-04-29
  • 打赏
  • 举报
回复
每一个网卡都有一个独立的编号,即MAC值.把ip和MAC值建立一个对应关系,不就可以解决了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧