如何利用正则表达式,表示组播地址?

如何利用正则表达式,表示组播地址?,第1张

组播地址(D类地址)点分十进制:
224000000000

239255255255
正则:2((2[4-9])|(3\d))(\(([01]\d{2})|(2(([0-4]\d)|(5[0-5]))))){3}
二进制:
1110开头,共32位
正则:1110[01]{28}
如果你是说MAC多播,48位,开头是:
0000,0001
0000,0000
0101,1110
0
正则也比较好写,就是:
0000000100000000010111100[01]{23}

组播的地址是D类地址,从224000—239255255255,而且一些地址有特定的用处如,224000—24400255只能用于局域网中路由器,是不会转发的,并且224001是所有主机的地址,224002所有路由器的地址,224005所有ospf路由器的地址,224003是PIMv2路由器的地址;239000—239255255255是私有地址(如192168xx);224010—238255255255可以用与Internet上的。

单播MAC地址:指第一个字节的最低位是0的MAC地址。
如:xxxxxxx0-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
组播MAC地址:指第一个字节的最低位是1的MAC地址。
如:xxxxxxx1-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx
广播MAC地址:每个比特都是1的MAC地址。广播是组播的一个特例。
如:11111111-11111111-11111111-11111111-11111111-11111111
请采纳,谢谢。

关于组播地址,有这么个误解:MAC地址第1字节必须是0x01才表示组播地址,连TCP/IP详解上也这么说(见中文版1242第一段)。IEEE
8023里面已经明确说明了只要第48bit是1就表示组播地址,所以无论MAC地址第1字节是0x01、0xC1或者是0x33都表示这个MAC地址是组播地址(以0x33开头的表示IPV6对应的二层组播地址)。之所以有这样的误解,是因为到目前为止,大部分组播MAC地址的第1字节都是0x01。
大部分组播地址都以01-80-C2和01-00-5E开头,那是因为使用这些组播地址的协议都是带头大哥IEEE和IANA名下的
参考:>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10256055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存