linux udp广播转发到所有ip,linux – 所有接口上的UDP广播
首先,你应该考虑广播过时,特别是INADDR_BROADCAST(255.255.255.255)。您的问题突出显示广播不合适的原因之一。它应该与IPv4一起死亡(希望)。请注意,IPv6甚至不具有广播概念(而是使用多播)。
INADDR_BROADCAST仅限于本地链接。如今,只有可视用途是DHCP自动配置,因为在这样的时候,客户端不知道它连接到哪个网络。
使用单个sendto(),只生成一个数据包,并且出接口由操作系统的路由表(linux上的ip路由)决定。您不能有单个sendto()生成多个数据包,您必须遍历所有接口,并使用原始套接字或使用setsockopt(…,SOL_SOCKET,SO_BINDTODEVICE,“ethX”将套接字绑定到设备“)发送绕过OS路由表的每个数据包(这需要root权限)。不是一个很好的解决方案。
相反,由于INADDR_BROADCAST无法路由,您可以通过遍历每个接口实现几乎相同的事情,并将数据包发送到其广播地址。例如,假设您的网络具有255.255.255.0(/ 24)掩码,则广播地址为192.168.1.255和192.168.2.255。为这些地址中的每一个调用sendto()一次,您将完成您的目标。
编辑:关于INADDR_BROADCAST的固定信息,并用关于SO_BINDTODEVICE的信息补充答案。
linux udp广播转发到所有ip,linux – 所有接口上的UDP广播相关推荐
- linux用cat查看本机ip,linux sh 如何根据出口网关来获取本机出口ip
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 测试机器:华为P7-L07 安卓测试环境:EMUI 3.1 安卓5.1.1(版本号:P7-L07C01B851,基带版本:23.600.06.00.00, ...
- linux查看上次重启日志和ip,Linux實時查看日志,訪問前10IP 和相關命令
本文介紹Linux下tail命令的使用方法. linux tail命令用途是依照要求將指定的文件的最后部分輸出到標准設備,通常是終端,通俗講來,就是把某個檔案文件的最后幾行顯示到終端上,假設該檔案有更 ...
- Linux网卡改为动态过去IP,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
修改网卡ens33为eth0 在使用RHEL和Centos7,发现网卡名称变成了EnoX,挺不习惯.现更改回旧名称eth0看着顺眼. 1.备份/etc/sysconfig/grub文件 cp /etc ...
- java 判断是linux系统_java判断是window系统还是Linux系统,并获取其IP地址及文件上传 | 学步园...
这是upload类的方法: public class Upload { public static String upload(FormFile formfile,String dirPath,int ...
- Linux系统如何配置64个IP,Linux系统配置IP
Linux版本centos7 64位系统 一,DHCP分配IP地址 自动获取IP: # dhclient 二,设置静态IP 查看网卡名称: # ip add 或 # ifconfig 编辑网卡配置文件 ...
- linux看请求报文发送的ip,Linux C 实现最简单的ICMP_ECHO请求报文发送
弄了两天,终于搞定了!把最简单的icmp报文发送实现了.本程序在linux环境编写,使用原始套接字. 实现步骤: 1.得到protocol实体(protoent,声明于): 2.初始化地址结构(soc ...
- linux中nmcli命令配置网卡ip,Linux 使用nmcli配置网络
Linux 使用nmcli配置网络 前提: 在虚拟机中添加一张桥接模式的网卡,如果是VirtualBox虚拟机中要shutdown才能添加. 1.启动NetworkManager工具,安装nmcli命 ...
- linux欢迎信息打印本机ip,Linux shell 登录显示欢迎信息或机器信息(示例代码)
写这个脚本的背景:因为管理的机器越来越多,每次登录机器都可以显示相应机器的信息防止误操作. 同时个人工作的环境有多个跳板机, 也容易操作错误, 所以每台机器上加个登录显示. 创建登录显示脚本 修改 ...
- linux网卡配置文件中2个ip,Linux Centos 7系统中如何一个网卡配置多个IP
因最近笔者在工作遇到这样一种情况,对多台服务器做组网规划的时候,客户方给出的IP数量有限, 不够每一台主机都分配到IP,但笔者又想了一下,不一定每台服务都得使用DCN网地址, 因此笔者想到可以对必须使 ...
最新文章
- 解决img标签间距问题
- Cleaver快速制作网页PPT
- 无法安装或运行应用程序。该应用程序要求首先在“全局程序集缓存(gac)”中安装程序集system.data.entity...
- Python map 函数 - Python零基础入门教程
- activiti5第四弹----serviceTask中的java服务任务
- 计算机参观企业心得,走进联想 感悟联想——北航MBA参观联想集团总部
- [转帖]到底什么是时间复杂度
- MathType2022最新版详细教程及怎么安装到word里?
- 渗透测试常用工具-端口扫描
- bmd硬盘测试_硬盘测速工具:Blackmagic Disk Speed Test Mac
- 【已成功安装但无法使用】Python 3.10.2 安装pyodbc
- VB中九九乘法表的实现
- 《机器人爱好者(第1辑)》——机器人和人工智能
- TypeScript 之 infer
- c语言统计学生成绩输入一个正整数n,输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计各等级成绩的个数...
- [DP]hdu5234
- 青少年编程 中国电子学会scratch等级考试二级历年真题解析【持续更新 已更新至2023年3月】
- Windows MinWG 编译 thrift
- Java面试必背八股文[11]:计算机网络
- 干货·Doherty功放设计
热门文章
- 转*SqlSever查询某个表的列名称、说明、备注、注释,类型等
- Vue.js 运行机制全局概览浅读
- AWS Fargate告诉你:什么是容器即服务
- Java 面向对象 之 封装方法
- preventDefault, stopPropagation, stopImmediatePropagation 三者的区别
- react 项目实战(二)创建 用户添加 页面 及 fetch请求 json-server db.json -w -p 8000...
- jquery之统计数字parseFloat
- poj_1442 Treap
- 整理LVS架构压力测试工作
- 递归(二)-------经典递归实例(汉诺塔问题)