使用OP路由器及Wireshark抓包分析IPTV直播、回看及点播地址示例

使用IPTV应用软件播放器观看电视直播,能有清晰稳定的直播源无疑是最重要的。家庭宽带的IPTV有运营商的支持维护,稳定性和清晰度都有保证。对普通家庭用户来说,可以说是最理想的直播源。之前介绍一些IPTV直播源的抓取,也有许多朋友兴趣。不同地区的IPTV不太一样,但基本方法是一样的。前一段回乡探亲,也尝试使用OpenWrt路由器及Wireshark抓取了一个家里IPTV的直播、回看及点播地址。记录一下整个过程,有兴趣的朋友可以参考。

先看家里IPTV的网络情况。光猫上网是路由模式,LAN1口是上网口。IPTV是桥接模式,绑定光猫的LAN2网口。光猫也只有两个网口。平时IPTV机顶盒直接网线连接到光猫LAN2口使用,通过HMDI连接电视。

IPTV机顶盒主页

再说抓包分析工具。抓包使用OpenWrt的路由器,一个WAN口,三个LAN口。为了通过路由器抓取,路由器使用两根网线连接光猫。路由器WAN口连接光猫LAN1上网口,使用路由器LAN2口连接光猫LAN2 IPTV桥接绑定口。路由器的LAN3口使用网线连接IPTV机顶盒。因为IPTV机顶盒需要连接到光猫LAN2口,在路由器上创建br-iptv网桥桥接LAN2和LAN3口。

路由器设备列表

为了在家庭网络中测试访问IPTV资源,在路由也创建IPTV接口。路由接口见下图。

路由器接口列表

在路由器上安装配置组播转单播的Udpxy服务,方便下面做些实际播放测试。

Udpxy配置

在路由器上安装tcpdump作为实际抓包工具。抓包分析工具依旧使用Wireshark。使用ssh远程抓取方式。注意要抓取的远程接口使用前面创建的IPTV网桥br-iptv。

Wireshark SSH Remote Capture

环境准备好后,启动Wireshark SSH remote capture抓包,开启IPTV机顶盒,先抓取启动过程。直至IPTV启动完成进入直播画面或者首页。

IPTV机顶盒启动

在启动过程中,往往IPTV机顶盒会向后台请求频道列表信息。先重点看能不能有频道列表信息。介绍两种方法,一是IPTV机顶盒与后台的交互一般是通过HTTP协议进行,可以重点重一下启动过程中的HTTP交互。可以想象,先会有认证交互,然后才后会请求信息。

IPTV机顶盒启动HTTP交互

从上面的HTTP交互过程中可以看出前面的 .../Action=Login, getencrypttoken.jsp, auth.jsp, fucportalauth.jsp, frameset_judger.jsp等请求,从名字上就能猜测是认证授权的交互,从后台获取用户令牌(UserToken)等。往下的内容就该重点关注了,比较幸运,下面的/iptvepg/function/frameset_builder.jsp就是要找的信息了。鼠标右键点击对应请求继续追踪它的HTTP Stream

追踪HTTP Stream

从追踪信息中可以找到频道列表信息。

HTTP追踪信息

一个例子的频道信息如下。其中ChannelName给出了频道名称(CCTV1高清),ChannelURL就是频道直播地址(igmp://239.253.248.77:8000),可以看出电视直播用的是组播方式。

jsSetConfig('Channel','ChannelID="ch00000000000000001128",ChannelName="CCTV1高清",UserChannelID="1",ChannelURL="igmp://239.253.248.77:8000",TimeShift="1",ChannelSDP="igmp://239.253.248.77:8000|rtsp://124.132.240.33:554/live/ch12122514263996485740.sdp?playtype=1&boid=001&clienttype=1&time=20240211145822+08&life=172800&ifpricereqsnd=1&vcdnid=001&userid=xxxxxxxxxxxx&mediaid=ch12122514263996485740&ctype=5&TSTVTimeLife=10800&authid=0&UserLiveType=1&stbid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&nodelevel=3&terminalflag=1&profilecode=&AuthInfo=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&bitrate=8&distype=0&usersessionid=xxxxxxxxxx",TimeShiftURL="rtsp://124.132.240.33:554/live/ch12122514263996485740.sdp?playtype=1&boid=001&clienttype=1&time=20240211145822+08&life=172800&ifpricereqsnd=1&vcdnid=001&userid=xxxxxxxxxxxx&mediaid=ch12122514263996485740&ctype=5&TSTVTimeLife=10800&authid=0&UserLiveType=1&stbid=xxxxxxxxxxxxxxxxxxxxxxxxxxx&nodelevel=3&terminalflag=1&profilecode=&AuthInfo=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&bitrate=8&distype=0&usersessionid=xxxxxxxxxxx",ChannelLogURL="",PositionX="1",PositionY="1",BeginTime="0",Interval="-1",Lasting="0",ChannelType="2",ChannelPurchased="",LocalTimeShift="0",UserTeamChannelID="1",TimeShiftLength="10800",telecomcode="00000001000000050000000000000152",FCCEnable="1",FCCFunction="1",ChannelFCCIP="124.132.240.66",ChannelFCCPort="15970"');

使用这个组播地址,利用路由器上的转单播服务,在电脑上打开单播地址(http://192.168.124.1:4022/rtp/239.253.248.77:8000)用播放器试一下,是CCTV1。

电脑VLC播放器

把整个频道信息拷贝出来,在文本编辑器中使用正则表达式,或者就手工编辑一下,生成m3u或者txt直播列表文件,IPTV的直播源就弄好了。在电脑用播放器打开试一下,没问题!

电脑上PotPlayer打开生成播放列表

另一种在Wireshark中查看频道信息的方法就是使用关键字搜索。比如搜索igmp://,如下图。也能很快定位到对请求频道信息列表的请求。同方法一追踪对应的HTTP流,获取频道列表信息即可。

WireShark追踪

采用搜索方式的关键是选择合适的关键字。这里是用的igmp://,但有些地方的IPTV并不是用的igmp组播,需要使用其它合适的关键词。

下面看一下回看,打开一个回看频道试一下。同时抓一下包。

IPTV回看节目选择

IPTV电视回看

从之前的频道列表信息中,可以看到回看使用的是rtsp协议。因此在Wireshark抓包中重点看rtsp协议包即可。

回看RTSP协议交互

从中可以看到,默认使用的是基于认证的rtsp地址,经过几次跳转,最后使用的rtsp地址其实并不需要认证,地址格式如下:

rtsp://119.180.21.48:1554/iptv/Tvod/iptv/001/001/ch12122514263996485740.rsc?tvdr=20240210043000GMT-20240210055100GMT

可以看到回看地址是使用tvdr参数定义回看时间段,注意使用的是GMT标准时间,不是北京时间。用电脑播放器打开看一下,回看节目正确。

使用VLC回看IPTV电视节目

可以把有兴趣的回看频道继续都抓取出来。编辑m3u播放列表文件把回看信息加进去。下面是一个频道的例子。

#EXTM3U x-tvg-url="http://epg.51zmt.top:8000/e.xml.gz" catchup-correction="8"
#EXTINF:-1 tvg-id="CCTV1" tvg-name="CCTV1" group-title="央视-高清" catchup="default" catchup-source="rtsp://119.180.21.48:1554/iptv/Tvod/iptv/001/001/ch12122514263996485740.rsc?tvdr={utc:YmdHMS}GMT-{utcend:YmdHMS}GMT",CCTV-1 综合
http://192.168.124.1:4022/rtp/239.253.248.77:8000

这样就可以在支持回看IPTV电视直播应用(比如Kodi)激活回看。更详细的使用说明可以参考笔者的其它相关文章。
最后再一下点播,现在IPTV也有不少点播节目。使用IPTV打开一个电影点播,同时抓一下包。

IPTV点播

同样重点看rtsp协议包就可以了。和前面的回看类似,开始使用认证rtstp地址,最后会跳转到一个不需要认证的rtsp地址上。格式如下:

rtsp://119.180.21.45:1554/iptv/vod/iptv/001/001/894/00000050280003431558.mpg

在电脑上打开地址看一下,没问题,电影可以完整播放。

使用VLC播放IPTV点播节目

最后说明一下,在家庭网络中观看IPTV回看和点播节目,需要走IPTV连接路由,因为运营商IPTV的地址大都会屏蔽互联网的访问。需要在路由器下定义静态路由规则,IPTV地址段通过IPTV连接路由。注意不同运营商需要配置的路由规则不同,需要根据运营商的实际地址配置。

路由IPTV路由规则

涉及内容比较多,感兴趣的朋友也可以翻翻笔者其它的相关文章。

展开阅读全文

页面更新:2024-04-11

标签:路由   地址   机顶盒   示例   路由器   运营商   协议   节目   列表   信息   频道

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top