社区
Linux_Kernel
帖子详情
如何知道接收到的广播包是从哪个网络端口接收到的?
shuianle
2009-04-14 03:59:07
我的机器上有两块网卡, 当我接收到一个广播包之后, 我怎么知道是从哪个网卡上接收到的?
...全文
630
10
打赏
收藏
如何知道接收到的广播包是从哪个网络端口接收到的?
我的机器上有两块网卡, 当我接收到一个广播包之后, 我怎么知道是从哪个网卡上接收到的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
貌似从对端地址应该知道从那个网卡来的吧...
在内网实现类似QQ通知窗口(发
包
/收
包
/弹出通知)
这篇博客介绍了如何在内网环境中,通过
广播
包
实现类似QQ的通知功能。首先,通过Socket发送UDP
广播
包
来传递通知信息,然后在WinForm应用中
接收
并展示通知。此外,还分享了使用C#实现任务栏通知窗口的技术细节,
包
括拖动和不规则窗口的创建。文章提供了源码供读者参考和讨论。
ESP8266 OTA避坑指南:为什么你的Arduino IDE
网络
端口
突然消失?
本文深入剖析ESP8266在Arduino IDE中OTA
网络
端口
消失的根本原因,涵盖mDNS服务异常、WiFi模式与低功耗冲突、内存及分区配置失误、防火墙拦截、IDE与核心库兼容性问题;提出代码层优化(如OTA初始化时机)、系统层配置(Bonjour/防火墙)、替代方案(PlatformIO基于IP的OTA)及高级调试手段(Wireshark抓
包
、自动化健康检查),助力构建高可靠性物联网固件升级体系。
一次处理CentOS服务器被攻击往外发
广播
包
本文详细记录了一次服务器被国外黑客通过多种手段入侵的过程,并提供了详细的故障排查步骤和安全优化建议,
包
括检查登录记录、进程、
网络
端口
、
网络
包
监控,以及采取的防御措施如更严格防火墙配置。同时,分析了可能的攻击方式,如利用80
端口
、密码爆破和SSH远程登录,并提出了针对性的优化策略。
socket INADDR_ANY 监听0.0.0.0地址 socket只绑定
端口
让路由表决定传到哪个ip
本文解释了INADDR_ANY在socket编程中的作用及其如何帮助服务器处理来自不同IP地址的请求。通过绑定INADDR_ANY,服务器可以在多个
网络
接口上监听同一
端口
,确保无论客户端连接到哪个IP地址都能正确
接收
并响应请求。
Unity Unet(二)认识NetworkDiscovery组件与NetworkManagerHUD组件
本文详细介绍了NetworkDiscovery组件在
网络
游戏中实现局域网内游戏发现与连接的功能,
包
括
广播
端口
、密钥、版本等参数设置,以及NetworkManagerHUD组件提供的
网络
状态控制界面。通过这些组件,开发者可以轻松地实现游戏的局域网多玩家模式。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章