社区
Linux_Kernel
帖子详情
如何知道接收到的广播包是从哪个网络端口接收到的?
shuianle
2009-04-14 03:59:07
我的机器上有两块网卡, 当我接收到一个广播包之后, 我怎么知道是从哪个网卡上接收到的?
...全文
602
10
打赏
收藏
如何知道接收到的广播包是从哪个网络端口接收到的?
我的机器上有两块网卡, 当我接收到一个广播包之后, 我怎么知道是从哪个网卡上接收到的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
海枫
2009-05-07
打赏
举报
回复
楼主没有露面了,不知道他(她)写的是那个层面的程序,kernel, user space, etc?
windboy_linux
2009-04-27
打赏
举报
回复
用LINUX下面的Netfilter机制就能很轻松的达到
Cpp权哥
2009-04-24
打赏
举报
回复
你用两个socket分别绑定一个网卡就行了。
Wenxy1
2009-04-24
打赏
举报
回复
sk_buff关联了网卡设备,linyt网友讲对了。
海枫
2009-04-20
打赏
举报
回复
rsfd = socket(PF_INET, SOCK_RAW, IPPROTO_ICMP);
struct sockaddr_in cli_addr;
socklen_t cli_addr_len;
recvfrom(rsfd, buf, buf_len, flags, &cli_addr, &cli_addr_len);
然后查看cli_addr的地址就可以知道它来自哪个网卡了。
shuianle
2009-04-15
打赏
举报
回复
谢谢楼上的回答, 又学到东西了.
不过我这里的应用是广播, 广播的话只能bind到广播地址, 所以根据bind来判断是无法区分的吧?
我实际的应该我找到了别的投机的办法, 用arping.
不过还是很希望能知道此问题的答案
海枫
2009-04-14
打赏
举报
回复
如果是kernel space的代码,通过skb->dev就可以知道是那个设备上提交过来的包了。
user space的代码,如果你的socket是IP层的raw的话,应该要在receive前把网卡bind到socket里,此后只能收此卡和socket函数指定协议的报文了,其它socket类型应该类似!
如果是用tcpdump来抓包的话,请使用-e选项来显示报文的mac地址,又或者只tcpdump一个网卡。
...
FYI
shuianle
2009-04-14
打赏
举报
回复
这里用广播是应为实际的ip可能会 ping 不通的情况.
对端地址应该不能知道本地的地址吧?
抓包工具是可以, 不过我是要自己代码实现,
谢谢你们的回答
猫已经找不回了
2009-04-14
打赏
举报
回复
..用抓包工具,可以显示是那块网卡接收的数据.
morris88
2009-04-14
打赏
举报
回复
貌似从对端地址应该知道从那个网卡来的吧...
Android UDP通讯工具
一个简单的Android UDP通讯工具
UDP收/发
广播
包
原理及步骤
UDP收/发
广播
包
原理及步骤 如果
网络
中两个主机上的应用程序要相互通信,其一要
知道
彼此的IP,其二要
知道
程序可监听的
端口
。因为同一主机上的程序使用
网络
是通过
端口
号来区分的。 UDP Socket的使用过程: 1. 初始化
网络
库 2. 创建SOCK_DGRAM类型的Socket。 3. 绑定套接字。 4. 发送、
接收
数据。 5. 销毁套接字。
UDP协议发送、
接收
广播
包
.
网络
通信基础 如果
网络
中两个主机上的应用程序要相互通信,其一要
知道
彼此的IP,其二要
知道
程序可监听的
端口
。因为同一主机上的程序使用
网络
是通过
端口
号来区分的。 UDP Socket的使用过程: 1. 初始化
网络
库 2. 创建SOCK_DGRAM类型的Socket。 3. 绑定套接字。 4. 发送、
接收
数据。 5. 销毁套接字。
解决go udp
广播
包
无法
接收
1.虚拟机网卡导致
广播
包
发送不出去或
接收
不到问题 2.防火墙开启限制udp
包
接收
发送
疑难杂症系列-
网络
UDP
广播
包
发不出去或
接收
不到问题
网络
UDP
广播
包
发不出去或
接收
不到问题发生背景症状代码原因禁用虚拟网卡的操作方式 发生背景 使用电脑作为client端,局域网内发送
广播
。手机作为server端,监听65532
端口
。 症状 单播情况下(指定Server端Ip地址),手机可以监听到数据;
广播
情况下(Ip=255.255.255.255),手机监听不到数据。 代码 public class UDPClient { publi...
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章