如何判断一个IP地址是有效的组播地址

组播报文的目的地址使用D类IP地址,范围是从224.0.0.0到239.255.255.255。D类地址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”(hop-by-hop)的原理在IP网络中传输。然而在ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。

以上来自 <http://baike.baidu.com/view/1871353.htm?fr=aladdin>

  组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。

224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;

224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;

224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;

239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。

      判断一个IP地址是否为组播地址,只需要判断该地址是否在224.0.0.255(不含)到239.255.255.255之间,

  IP地址本身是一个32位的数值,即0x00000000-0xffffffff之间,所以只需判断IP对应的Long值是否大于0xE00000FF且小于等于0xEFFFFFFF即可

  (该方法并非原创,而是摘自与live555源代码)

时间: 2024-11-06 20:40:56

如何判断一个IP地址是有效的组播地址的相关文章

组播地址对应多个端口

场景描述:一个组播地址可以包含多路组播数据,这些数据通过不同的端口区分.还是举一个简单的实例. 主机A向组播地址:224.1.1.1发送端口为1025的UDP数据 主机B向组播地址:224.1.1.1发送端口为1026的UDP数据 主机C加入组播地址:224.1.1.1,准备接收端口1025的UDP数据,请问各位小伙伴,主机C的网卡能够接收到那一路的UDP数据? 这是一个很有趣的话题.实际上,两路数据主机C都能够接收到.从理论出发:组播程序是一个进程,这个进程运行在后台,当我们调用add_mem

组播初涉,用户如何知道想加入哪一个组播组,如何知道要加入哪一个组播地址?

刚学到组播的时候,纠结了一个问题,用户如何知道想加入哪一个组播组,如何知道要加入哪一个组播地址? 现在想想真是,用四个字来形容就是我作为一个学计算机的“不够专业”. 这个问题其实很好回答,只是没想清楚而已,其实他等价于一个问题,我在看网页,发qq的时候,看B站的时候,我的手机是如何知道对方的IP地址从而获取数据的呢? 哈哈哈哈哈哈,那就是,码农们已经给你写好了,你用的软件其实到哪获取数据都已经是被写进去了,比如,腾讯的服务器是xxxx,你发qq的时候手机根据写好的程序 就自动与xxxx联系了.

组播地址的范围

组播报文的目的地址使用 d 类 ip 地址, 范围是从 224.0.0.0 到 239.255.255.255.d 类地址不能出现在 ip 报文的源 ip 地址字段. 224.0.0.0-224.0.0.255 为预留的组播地址(永久组地址) 只能用于局域网中,路由器是不会转发的地址. 224.0.0.0 保留不做分配,其它地址供路由协议使用. 224.0.1.0-238.255.255.255 为用户可用的组播地址(临时组地址),可以用于 Internet 上的. 239.0.0.0-239.

MAC 地址(单播、组播、广播地址分类)

简介 一个制造商在生产制造网卡之前,必须先向 IEEE 注册,以获取到一个长度为 24bit 的厂商代码,也称为 OUI(Organizationally-Unique Identifier).制造商在生产制造网卡的过程中,会往每一块网卡的 ROM 中烧入一个 48bit 的 BIA(Burned-In Address,固化地址)地址,BIA 地址的前 3 个字节就是该制造商的 OUI,后 3 个字节由该制造商自己确定,但不同的网卡,其 BIA 地址的后 3 个字节不相同.烧入进网卡的 BIA

常见组播地址

224.0.0.0 基准地址(保留)224.0.0.1 所有主机的地址 (包括所有路由器地址)224.0.0.2 所有组播路由器的地址224.0.0.3 不分配224.0.0.4 dvmrp 路由器224.0.0.5 所有 ospf 路由器224.0.0.6 ospf DR/BDR224.0.0.7 st 路由器224.0.0.8 st 主机224.0.0.9 rip-V2 路由器224.0.0.10 Eigrp 路由器224.0.0.11 活动代理224.0.0.12 dhcp 服务器 / 中

使用C语言判断一个IP 地址是否为私有地址

参考:https://zhidao.baidu.com/question/191740827.html 私有IP地址范围:A: 10.0.0.0 10.255.255.255 10.0.0.0/8B: 172.16.0.0 172.31.255.255 172.16.0.0/12C: 192.168.0.0 192.168.255.255 192.168.0.0/16 在C语言中的 socket 结构体如下 struct sockaddr_in { short sin_family; USHOR

IP组播技术介绍及实现例子

引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布.多媒体远程教育.CSCW协同计算.远程会诊.这就带来了带宽的急剧消耗和网络拥挤问 题.为了缓解网络瓶颈,人们提出各种方案,归纳起来,主要包括以下四种: ●增加互连带宽: ●服务器的分散与集群,以改变网络流量结构,减轻主干网的瓶颈: ●应用QoS机制,把带宽分配给一部分应用: ●采用IP Multic

组播MAC地址_转

转自:组播MAC地址 MAC地址是以太网二层使用的一个48bit(6字节十六进制数)的地址,用来标识设备位置.MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique identifier),后24位由厂商自行分配. MAC地址有单播.组播.广播之分.单播地址(unicast address)表示单一设备.节点,多播地址或者组播地址(multicast address.group address)表示一组设备.节点,广播地址(broadcast a

java 实现判断合法IP

判断一个IP是否为合法IP其实就是看其格式是否满足IP格式 这里直接用java实现 public static boolean isIP(String ip){ String Ip = ip.replaceAll(" ",""); if(Ip.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")){ String st = Ip.split("\\."); if(Intege