首先介绍一下组播的相关说明(引用至恩山):
iGMP 与 RTSP
在 IPTV 中常见的两种用于播放直播节目的协议分别为 IGMP 和 RTSP,他们之间的差异如下。
| 协议 | 节目类型 | 可用时间 | 鉴权 |
| IGMP | 直播 | 长期 | 强制 |
| RTSP | 直播/回放/点播 | 短期 | 非强制 |
IGMP
网路群组管理协议(英语:Internet Group Management Protocol,缩写:IGMP)是用于管理网路协议多播组成员的一种通信协议,有时候我也会将其称为组播。组播地址通常很少变化,但是很重要的是它只能看直播不能看回放。又因为它的地址是内网地址,所以你必须要获取到内网IP才能正常播放。
RTSP
实时流协议(Real Time Streaming Protocol,RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体服务器。
该协议用于创建和控制终端之间的媒体会话。
媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流,有时候我也会将其称为时移。
我们再看看组播转单播的状态说明:

可以看出播放格式模板有两个:
http://address:port/udp/mcast_addr:mport/
http://address:port/udp/source_addr@mcast_addr:mport/
第一个为我们常见的格式,因此我们要找到组播节目播放地址都需要找到两个关键的参数,即组播转单播的服务器address:port和组播地址mcast_addr:mport,其中mcast_addr:mport对各地区运营商基本是不变的,前面我们讲了可以通过网络空间测绘来获取address:port:
那么组播地址mcast_addr:mport我们如何查找呢?通常可用方法有如下三个:
一、从自己家的IPTV抓取组播地址mcast_addr:mport
如果自家有IPTV,可以考虑从自家获取本地运营商的组播地址mcast_addr:mport,此种方法是比较可靠也是比较完整的。详见可参考之前推文:
经验:小白零基础抓包重庆联通IPTV分享,附自己抓包的重庆联通IPTV源
二、通过搜索引擎搜索相关区域的组播地址
如搜索北京电信组播地址,会搜索到部分网友分享的从自己机顶盒抓取出来当地区域的组播地址


三、从某IPTV搜索引擎获取组播地址
搜索地址:http://tonkiang.us/hoteliptv.php
如我们搜索北京电信组播地址:

可以看出:节目数量一样,只是前面的IP即address:port不一样,我们点开其中一个有效的IP进入详细列表:

手动将列表的所有内容复制下来,作为组播地址列表:

我们观察复制下来的内容为每三行为一个节目,因此我们可以用python来提取节目列表,也可以用js代码来实现这一目的:

相关工具已上传至免费空间,也可以直接访问下面页面运行:
http://iptivi.000.pe/txt2m3u.html
该工具在fanmingming工具基础上修改,增加从tonkiang手动复制下来的节目进行整理为标准的txt格式,同时支持转换和下载m3u格式。
四、相关说明
1、我们获取到组播地址后可以将对应区域组播地址保存为模板,如果组播节目列表失效了可以从网络测绘空间或者tonkiang上找到新的IP进行替换即可。
2、我们可以用程序化代码自动获取有效IP后替换掉失效的IP,之前有从测绘空间全自动的程序,也可以从tonkiang获取IP进行替换失效的IP,后面再考虑更新一版。
有要小工具的扫码关注公众号后台回复【240509】下载

欢迎关注本公众号,后台发消息给我,我会即时进行回复的哦。