组播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地址之间的换算方法与例子相关推荐

  1. 组播IP地址与组播MAC地址之间的换算方法

    MAC地址介绍 络接口卡硬件地址(MAC)是在数据链路层由标准组织IEEE统一定义的. 该定义类型大体上分为: EtherNET 802.3 , Token Ring 802.5 , Token Bu ...

  2. 单播、广播和多播地址以及组播ip与组播mac间的换算

    转自:https://www.cnblogs.com/songdada/articles/4039468.html 除地址类外,还可根据传输的消息特征将IP地址分为单播.广播或多播.主机使用IP地址进 ...

  3. 【博客546】组播IP地址与组播MAC地址的联系与转换

    组播IP地址与组播MAC地址的联系与转换 先直观感受一下ipv4的转换 ip多播地址: 对应mac多播地址: ipv4,ipv6各种情况 ip组播地址 mac组播地址

  4. IPv4/IPv6组播地址和组播MAC地址的转换

    IPv4地址的组播MAC地址: 组播MAC地址高24位固定为0x01005E,第25位为0 组播MAC地址低23位为IPv4地址的低23位 以上规则是IANA规定的,因为IPv4组播地址的高4位是11 ...

  5. 【组播技术入门 02】组播IP地址及组播MAC地址

    1.组播IP地址 在组播环境中,组播源地址使用的是单播地址,它向一个组播IP地址发送组播流量,凡是加入到该组播组的用户都会接收到源发送出来的组播数据.组播IP地址是扁平的,也就是不能划分子网的.使用D ...

  6. IPv4、IPv6地址、组播地址及子网子划分详解一

    一.IPv4地址 1.IP地址的定义 IP地址是分配给IP网络中每台机器的数字标识符,它指出了设备在网络中的具体位置.由 32 位二进制数组成.IP地址是软件地址,而不是硬件地址. 在因特网中给每台电 ...

  7. 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 ...

  8. noip普及组 c语言,厉害了,NOIP普及组竟然这样出题,你会做吗?

    原标题:厉害了,NOIP普及组竟然这样出题,你会做吗? NOIP---普及组(答案详解) 全国青少年信息学奥林匹克竞赛(NOIP)到今年已经有34个年头(考试题)了. 该竞赛旨在给那些在中学阶段学习的 ...

  9. 51单片机中断的调用寄存器组(PSW)的作用,以及汇编堆栈的作用,堆栈指针的SP的使用方法,RAM的运行和ROM在单片机具体运行和C语言的优势和中断,定时器基础知识(上)

    一,堆栈在汇编的作用,以及PUSH ACC 和 PUSH PSW 通过最简单的8051单片机RAM的分配可知,单片机从烧程序到达到一定的工作过程.首先明白为什么要引如"烧"写的过程 ...

最新文章

  1. java开发checklist,Java API设计CheckList
  2. java框架知识_java框架知识点总结
  3. 多线程中的应用之队列(queue)
  4. js get/set Cookie
  5. ctk 组件创建 ui_创建可重复使用的UI组件的提示和技巧
  6. 汇编语言---统计数据区的正、负数并分开存放
  7. orcadcapture安装_OrCAD Capture CIS初学者快速上手指导教程
  8. 点到直线的距离公式: 一元微积分
  9. Ubuntu14.04安装GNOME3桌面
  10. 计算机时区找不到北京,emwin7时区/em 怎么没有北京时间了-win7时区,win7系统怎么添加北京时区...
  11. 网络号、主机号、子网号--例题
  12. android开源代码
  13. 鲁大师从服务器获取信息失败怎么办,云服务器 鲁大师
  14. android内存分析命令
  15. 高考倒计时一天,加油!
  16. AutoCAD Civil3D纵断面图中如何修改坡长为变坡点之间的距离
  17. Python-easygui模块之插入图片
  18. 以太坊学习路线——(二、上)搭建testrpc测试链
  19. 智云通CRM:如何发现高附加值客户,让他们直接按原价购买?
  20. vue中使用svg-icon遇到的坑

热门文章

  1. CSS的浮动属性,面试必问
  2. 各种文件后缀的意义(持续更新中)
  3. linux模块builtin是什么意思,builtin命令
  4. jwt的token自动续约_SpringSecurity Jwt Token 自动刷新的实现
  5. JavaScript基础 -- DOM
  6. vue-cli3项目使用px2rem插件做自适应
  7. java字符串替换星号_把字符串替换成星号
  8. 身份证号码合法性检验(python)
  9. python 66:re正则表达式7(全- tcy)
  10. Hadoopkms加密