组播ip mac转换 c语言,组播IP地址与组播MAC地址之间的换算方法与例子
组播IP地址与组播MAC地址之间的换算方法与例子
1个oui 有2 的24方个MAC地址
组播地址 :2的28次方,224.0.0.0-239.255.255.255
可用组播范围:0100.5E00.0000----0100.5E7F.FFFF
MAC由48bit组成:前24位是OUI ,后24位由厂商定义
共需要:16个OUI才可以与一个IP来一一对应。
32个IP才可以与一个oui来一一对应
典故:Dr.Steve Deering此人研究出来的,当时因为分他的OUI是(0100.5E 0)所以这7个不变。
算法:
最笨的方法,也是最安全的方法,就是把IP地址,换成二进制数。再把二进制换成16进制,第4个8位,不用,因为有组播MAC的限制已经规定是0100.5E开头,
第3个8位中的第8位规定为0.所以当不为0时,要改成0来换算。
Example:
源IP 224.1.1.1
换算成二进制 11100000.00000001.00000001.00000001
再换成16进制 01 .01 .01
加上组播MAC头 0100.5E
最后形成: 0100.5E01.01.01
可用的其它31个组播IP地址:
224.129.1.1
225.1.1.1 225.129.1.1
226.1.1.1 226.129.1.1
227.1.1.1 227.129.1.1
228.1.1.1 228.129.1.1
229.1.1.1 229.129.1.1
230.1.1.1 230.129.1.1
231.1.1.1 231.129.1.1
232.1.1.1 232.129.1.1
233.1.1.1 233.129.1.1
234.1.1.1 234.129.1.1
235.1.1.1 235.129.1.1
236.1.1.1 236.129.1.1
237.1.1.1 237.129.1.1
238.1.1.1 238.129.1.1
239.1.1.1 239.129.1.1
加上:224.1.1.1 刚好32个。
源IP 224.132.1.1
换算成二进制 11100000.10000100.00000001.00000001
第24位为0 11100000.00000100.00000001.00000001
再换成16进制 04.01.01
加上组播MAC头 0100.5E
最后形成: 0100.5e04.01.01
可用的其它31个组播IP地址:
224.4.1.1
225.4.1.1 225.132.1.1
226.4.1.1 226.132.1.1
227.4.1.1 227.132.1.1
228.4.1.1 228.132.1.1
229.4.1.1 229.132.1.1
230.4.1.1 230.132.1.1
231.4.1.1 231.132.1.1
232.4.1.1 232.132.1.1
233.4.1.1 233.132.1.1
234.4.1.1 234.132.1.1
235.4.1.1 235.132.1.1
236.4.1.1 236.132.1.1
237.4.1.1 237.132.1.1
238.4.1.1 238.132.1.1
239.4.1.1 239.132.1.1
加上224.132.1.1,刚好32个。
另一种方法是:如果给的IP地址第1、2、3位都大于128,可以用128除以16(因为可用IP是28位,可用MAC是23位,剩5位可变,2的4次方是16),得出来的商换成16进制是MAC的左位,得出来的余数换成16进制是MAC的右位。第4组8位不看,因为是规定是0100.5E开头。
第3组第8位必需为0.当为1时,要去掉换成0.
Example:
源IP 224.215.145.230
除16: 215/16商:13余:7 . 145/16商:9余:1 . 230/16商:14余:6
换成(16进制): D7 . 91. E6
第24位为0 57.91.E6
加上组播MAC头 0100.5E
形成: 0100.5E57.91.E6
可用的其它31们组播IP地址:
224.87.145.230
225.87.145.230 225.215.145.230
225.87.145.230 225.215.145.230
226.87.145.230 226.215.145.230
227.87.145.230 227.215.145.230
228.87.145.230 228.215.145.230
229.87.145.230 229.215.145.230
230.87.145.230 230.215.145.230
231.87.145.230 231.215.145.230
232.87.145.230 232.215.145.230
233.87.145.230 233.215.145.230
234.87.145.230 234.215.145.230
235.87.145.230 235.215.145.230
236.87.145.230 236.215.145.230
237.87.145.230 237.215.145.230
238.87.145.230 238.215.145.230
239.87.145.230 239.215.145.230
加上224.215.145.230.刚好32个。
计算剩于其它的可用组播IP方法:
刚第三位大于128时,要减去128
当第三位小于128时,要加上128
这样从224-239每一组里有两个地址,刚好32个。
组播ip mac转换 c语言,组播IP地址与组播MAC地址之间的换算方法与例子相关推荐
- 组播IP地址与组播MAC地址之间的换算方法
MAC地址介绍 络接口卡硬件地址(MAC)是在数据链路层由标准组织IEEE统一定义的. 该定义类型大体上分为: EtherNET 802.3 , Token Ring 802.5 , Token Bu ...
- 单播、广播和多播地址以及组播ip与组播mac间的换算
转自:https://www.cnblogs.com/songdada/articles/4039468.html 除地址类外,还可根据传输的消息特征将IP地址分为单播.广播或多播.主机使用IP地址进 ...
- 【博客546】组播IP地址与组播MAC地址的联系与转换
组播IP地址与组播MAC地址的联系与转换 先直观感受一下ipv4的转换 ip多播地址: 对应mac多播地址: ipv4,ipv6各种情况 ip组播地址 mac组播地址
- IPv4/IPv6组播地址和组播MAC地址的转换
IPv4地址的组播MAC地址: 组播MAC地址高24位固定为0x01005E,第25位为0 组播MAC地址低23位为IPv4地址的低23位 以上规则是IANA规定的,因为IPv4组播地址的高4位是11 ...
- 【组播技术入门 02】组播IP地址及组播MAC地址
1.组播IP地址 在组播环境中,组播源地址使用的是单播地址,它向一个组播IP地址发送组播流量,凡是加入到该组播组的用户都会接收到源发送出来的组播数据.组播IP地址是扁平的,也就是不能划分子网的.使用D ...
- IPv4、IPv6地址、组播地址及子网子划分详解一
一.IPv4地址 1.IP地址的定义 IP地址是分配给IP网络中每台机器的数字标识符,它指出了设备在网络中的具体位置.由 32 位二进制数组成.IP地址是软件地址,而不是硬件地址. 在因特网中给每台电 ...
- IPv4、IPv6地址、组播地址及子网子划分详解四
6.IPv6 IPv4地址总数=232=4,294,967,296 IPv6地址总数=2128= 340,282,366,920,938,463,374,607,431,768,211,456 201 ...
- noip普及组 c语言,厉害了,NOIP普及组竟然这样出题,你会做吗?
原标题:厉害了,NOIP普及组竟然这样出题,你会做吗? NOIP---普及组(答案详解) 全国青少年信息学奥林匹克竞赛(NOIP)到今年已经有34个年头(考试题)了. 该竞赛旨在给那些在中学阶段学习的 ...
- 51单片机中断的调用寄存器组(PSW)的作用,以及汇编堆栈的作用,堆栈指针的SP的使用方法,RAM的运行和ROM在单片机具体运行和C语言的优势和中断,定时器基础知识(上)
一,堆栈在汇编的作用,以及PUSH ACC 和 PUSH PSW 通过最简单的8051单片机RAM的分配可知,单片机从烧程序到达到一定的工作过程.首先明白为什么要引如"烧"写的过程 ...
最新文章
- java开发checklist,Java API设计CheckList
- java框架知识_java框架知识点总结
- 多线程中的应用之队列(queue)
- js get/set Cookie
- ctk 组件创建 ui_创建可重复使用的UI组件的提示和技巧
- 汇编语言---统计数据区的正、负数并分开存放
- orcadcapture安装_OrCAD Capture CIS初学者快速上手指导教程
- 点到直线的距离公式: 一元微积分
- Ubuntu14.04安装GNOME3桌面
- 计算机时区找不到北京,emwin7时区/em 怎么没有北京时间了-win7时区,win7系统怎么添加北京时区...
- 网络号、主机号、子网号--例题
- android开源代码
- 鲁大师从服务器获取信息失败怎么办,云服务器 鲁大师
- android内存分析命令
- 高考倒计时一天,加油!
- AutoCAD Civil3D纵断面图中如何修改坡长为变坡点之间的距离
- Python-easygui模块之插入图片
- 以太坊学习路线——(二、上)搭建testrpc测试链
- 智云通CRM:如何发现高附加值客户,让他们直接按原价购买?
- vue中使用svg-icon遇到的坑