a. 折腾这玩意儿的目的是啥?
对我而言,纯粹就是为了折腾了。因为家里面人都不怎么爱看电视频道,机顶盒一直都死处于吃灰状态。但是折腾完事儿,还是很有意思的一件事。分享出来,纯属抛砖引玉了。
b. 折腾这玩意儿实现了啥?
运营商是通过机顶盒来进行拨号和播放iptv的。使用软路由拨号之后,就可以抛弃掉机顶盒了。实现不限终端,不限数量的播放IPTV。
一、设备准备
准备一台至少两个网口的软路由。一个网口用来转发rtp流到局域网或者映射到广域网,让其它安装了播放器的客户端可以不受限制的播放正版的iptv。另外一个网口用来连接光猫的iptv接口。
然后安装好iKuai软路由系统,具体安装ikuai的过程就不赘述了,网上很多现成的教程。
完成安装之后,将其中一个网口连接到机顶盒的iptv接口。记住这个网口,我们需要对这个网口做一些配置。
至于另外的网口,根据喜好配置成wan口或者lan口。我这里有主路由设备了,所以我将另外网口配置成wan,连接主路由,让这台机器专门用来转发iptv数据。如果要将这台机器配置为软路由,将另外网口配置lan,启用DHCP即可。
此时我这里的网络拓扑大概长这样:
还有种常见的方案是把ikuai作为主路由使用。作为主路由使用的话,网络拓扑大概长这样:
二、抓包获取IPoE拨号参数
成都移动和成都电信,IPoE拨号都需要三个参数,分别是:
参数 | 说明 | 示例(成都移动) | 示例(成都电信) |
option12 | Hostname | android-1xxxxxxxxxxxxxxxxxxxxf | 74:xx:xx:xx:xx:00 |
option60 | Vendor class ID | 60个字节的加密数据 | SCITV |
option61 | Client ID | 74:xx:xx:xx:xx:00 | 74:xx:xx:xx:xx:00 |
机顶盒通过这三个参数请求IP地址。同样,如果在iKuai WAN口DHCP参数中配置上这三个参数,也能通过认证获取IP地址。
但是这三个参数需要通过抓取机顶盒网络数据包来获取。
将机顶盒与电脑网口直连,通过Wireshark抓包和分析之后,就能获取到我们想要的东西。先下载Wireshark,下载地址:https://www.wireshark.org/download.html
关闭机顶盒,然后将机顶盒与电脑网口直连,如图所示:
打开Wireshark,选择对应的网口进行监听(我这里是以太网2)。
启动机顶盒,等待机顶盒完全开机。这个时候机顶盒获取不到网络地址,不用管,我们需要的是机顶盒请求上游DHCP的参数。
停止Wireshark监听,然后我们搜索dhcp。
这个时候就能看到有好些个机顶盒的dhcp请求了。随便选一个,展开Dynamic Host Configuration Protocol (Discover),可以看到机顶盒在请求参数时,携带的DHCP参数。
三、配置iKuai IPTV WAN口
iKuai中新增一个WAN口,网口选择连接到光猫iptv的哪个网口。成都移动的话,以下选项需要修改或者填写对应的值。其中option 12、option 60、option 61需要获取,成都电信直接查看机顶盒背面,省去抓包步骤都行。
默认网关:去勾选。此网关只过IPTV的流量,勾选默认网关之后,网络流量也会走这个网关(尽管走不通就是了)。
自动切换:也去勾选。
option 12:机顶盒hostname,选择字符串。
option 60:一串加密了的二进制数据,目前来说,网上还没有分析加解密过程的资料,就不费力去解密了。直接复制文本到option60也能通过认证。依然选择字符串。
这一项不能直接复制值,需要复制为“...as a Hex Stream”
option 61:可选。机顶盒mac地址。选择字符串和十六进制都行(感觉这一项没有使用)。
线路检测:随意就好,检测的IP地址可以填写获取到的DNS或者网关地址。
展开高级设置。
克隆MAC:填写机顶盒的mac地址。
各选项填好之后和下面类似。
点击保存,此时应该就能正常获取到IP地址了。
然后前往 高级应用->UDPXY设置,添加一个条目。如下所示:
信号源接口选择刚刚新建的wan2,端口任意。添加完成之后,在浏览器中输入:http://<iKuai IP地址>:<填写的端口>/status。出现下面页面表示服务正常开启了。
这玩意儿是一个小型的 UDP-to-HTTP 代理服务器。它的主要作用是将UDP流(通常用于视频、音频等多媒体流)转换为HTTP流,以便通过常见的客户端使用。
现在可以说是万事俱备只欠东风了。
四、获取并处理直播源
不同的电视频道有不同的直播地址,所以我们需要去找对应运营商的IPTV广播地址。
一般来说,有两种获取途径。一种是,和抓dhcp请求包一样,抓取机顶盒请求组播地址的数据包。另一种就是获取大佬分享的直播源啦~,直播地址一般来说变化不大,一两年去更新一次都可以。
我嫌麻烦,采用第二种方式。比如说这个直播源我就是从恩山论坛里面找的(感谢大佬)。
才拿到的直播源一般长这样:
我们需要做一些处理才能再不同的客户端里面使用。
首先是替换rtp地址为本地的udpxy服务地址。将原始地址中的“rtp://”,全部替换为“http://<iKuai IP地址>:<填写的端口>/rtp/”
替换完成之后,长这样:
把这个地址复制到PotPlayer之类的播放器中,测试是否能够正常播放了。
如果能正常播放,表示一切就绪。
还需要跟进一步的话,比如说要在Emby中显示台标之类的。可以通过老张的EGP工具站,选择m3u或txt文件,可为匹配生成带有台标及EPG的m3u文件。
处理之后的m3u长这样:
然后就可以导入emby之类的播放器,愉快的玩耍了。
五、写在后面
讲道理,成都电信按照上述步骤处理应该也是能行的。只是电信的option 60是一个固定值,应该是SCITV。
文章评论