前提先用抓包神器接好网络,抓包神器制作方法:http://wp.2008.in/2024/03/06/9904/
1、启动wireshark,选择需要侦听的本地连接网卡,启动iptv盒子的电源。此时wireshark的数据区从空白开始变的有数据不停的冒出来。等到电视中进入了iptv的直播界面即可关闭iptv盒子的电源。此时wireshark的数据区停止冒出新数据。
我们在wireshark的顶栏第一行,表达式过滤器栏中,输入http回车。wireshark就把所有的http包都列出来。按Ctrl+F,搜索栏选择字符串,前面选择分组字节流。搜索框填写loadbalanced=1,点查找亮条会定位到搜索到的那一行。
你可以看到有2列ip,第一列源IP,即发起网络请求的一方,第二列目的IP,即请求发送到哪个服务器的IP。你仔细看,如果你是pppoe拨号的IPTV盒子,一般都会被系统分配一个10开头的内网ip,如果是dhcp的iptv盒子,一般都会被光猫分配一个192开头的内网ip。我们记下这个121开头的服务器IP地址,后面有用。
这一条信息的意思就是10开头的IPTV盒子向121开头的服务器请求频道列表。121开头的服务器收到请求后会返回一个http的数据包给10开头的IPTV盒子。这个包就是直播源地址数据。这个包在哪儿呢?他在另外一个方向的包里面。好,因为我的电脑是单网卡,所以一次只能抓一个方向的包,现在我们换D头连接,抓接收方向的包。
2、换线,抓包神器D头连接电脑网卡wireshark关闭当前抓包,重新开始抓本地连接。数据区又变空白了。启动iptv盒子的电源。此时wireshark的数据区从空白开始变的有数据不停的冒出来。等到电视中进入了iptv的直播界面即可关闭iptv盒子的电源。此时wireshark的数据区停止冒出新数据。我们在wireshark的顶栏第一行,表达式过滤器栏中,输入http回车。wireshark就把所有的http包都列出来。
现在的源ip变成了远程服务器的IP,目的ip变成了IPTV盒子的IP了。我们现在使用刚才记录的那个121服务器IP,找到第一次在源IP栏目中出现这个IP的这一行,info栏显示http 200 OK ,意思是说我响应了你上面我们记录那个IP的时候那个http请求,返回了频道列表给你了。
我们在这一行上面右键,选追踪流,http流,往下拖,很长,大概到中央位置。如图显示频道列表的数据,右下角选utf-8,汉字就不会乱码,不过貌似我的传输过来是GBK编码,wireshark没法解码,所以中文频道还是乱码。
其中ChannelURL=”igmp://239.252.219.64:5140″,就是直播源地址。请使用notepad++由正则匹配筛选,勾选匹配,得到地址列表。查找内容那里为:+?ChannelName=\”(.+?)\”,ChannelURL=\”.+?://(.+?)\”.+?替换为:#EXTINF:-1, \1\nrtp://\2\n
这个地方有个坑,我的notepad++复制上面的规则没法用,研究了半天发现是复制过去的\这个符号要删掉重新打,估计是复制过来,带了网页的格式。晕死了。
3、人工完善组播源频道名字最近看到本坛机油共享了,关于GBK编码的汉字处理方法,感谢@wengmingao
,链接https://www.right.com.cn/FORUM/thread-329888-1-1.html如果你搞不定,貌似只能人工一个台一个台的写名字了。
可以将这个列表保存好,拔掉抓包线,电脑直连光猫IPTV口,拨号或者DHCP后,用vlc打开这个列表,一个台一个台切换看着改