自己抓取家中IPTV组播地址,不用交换机或多网卡,远程抓取更方便

电子小课堂
03-06

家里路由器能干的事,比你想象的多得多。不用买新设备,也不用拆盒子,连上Wi-Fi就能把IPTV直播地址偷偷抓出来。这事我试了三次,最后一次成功了,全程就五步,连我妈都照着做了两遍。

家里IPTV盒子一直插在光猫上,盒子背面贴着“禁止改接”,搞得像碰一下就会断网。其实根本没那么玄,我把它拔下来,插进路由器LAN口——画面照常播,回看也能进,就是一开始卡了两秒。后来知道,是光猫和路由器之间没通IGMP,得在路由器后台把“IGMP Snooping”打开,再把IPTV VLAN号填对(我家是43)。这个数字不是猜的,是盒子设置里写的,藏在“网络诊断”第三页。

路由器得能SSH登录。华硕梅林固件默认就开着,小米得进“系统设置→开发者选项→开启SSH”。登录进去第一件事打`which tcpdump`,没有就`opkg install tcpdump`,等个十几秒装好就行。别怕输错命令,输错了回车就完事,不会炸路由器。Wireshark我用的是最新版4.2,打开后点“Capture→Options→Remote SSH”,填路由器IP、端口22、账号密码,它自己连。关键在下一步:选接口。不能选wlan0,得选br-lan或者lan3——看你盒子插在哪个口,就选对应的那个。我盒子插在LAN3口,Wireshark里就有个lan3选项,勾上它。

抓包不是一直开着等,得“引蛇出洞”。我按了盒子遥控器的“返回”键十次,再进首页,再点“频道列表”,等三秒,立刻点“搜索所有频道”。这时候盒子会疯狂发HTTP请求,往服务器要频道名单。Wireshark里一堆包闪过,我在顶部过滤栏直接打:`http and ip.dst == 192.168.2.105`(这是我盒子的IP,你得自己查,盒子设置里有)。再加个`and (http contains "list" or http contains "rtp")`,剩下不到二十条。找那个状态码是200 OK的,右键→Follow→HTTP Stream,弹出来的窗口里全是乱码?别慌,复制整段,粘贴到浏览器打开json.cn网站,自动格式化。一眼就看见“channelName”和“rtpUrl”。CCTV-1那条写着`rtp://239.3.1.129:8008`,我就把它抄下来,前面加`EXTINF:-1 tvg-name="CCTV-1综合",CCTV-1综合`,换行,后面贴地址,存成iptv.m3u文件。

直接用VLC打开m3u,黑屏。不是地址错,是VLC默认不走组播。点“媒体→打开网络串流”,粘`rtp://239.3.1.129:8008`,下面勾“使用本地网络接口”,OK。播了。但手机不行,手机VLC不认rtp前缀。我就在路由器里装了udpxy,一行命令:`opkg install udpxy && /usr/bin/udpxy -m 192.168.2.1 -p 8080`。然后把m3u里的地址全替换成`
http://192.168.2.1:8080/udp/239.3.1.129:8008`,手机、平板、电脑全通。udpxy监听8080,m3u里也得是8080,错一位都不行,我第一次写成8081,白忙半小时。

法律这事我问了做通信的朋友。他说只要不往外传,不录下来上传B站,不拉群卖链接,就在自己家几台设备上看看,不算违法。路由器上我加了防火墙:`iptables -I INPUT -p tcp --dport 8080 -s 192.168.2.0/24 -j ACCEPT`,再加一条拒绝其他所有,这样隔壁WiFi连不到我这个端口。还改了dnsmasq,让iptv.local指向路由器,m3u里写`
http://iptv.local:8080/udp/239.3.1.129:8008`,不怕IP一变就废。有次光猫重启,IP真变了,但iptv.local没变,照样播。

最后提醒一句,不是所有盒子都行。有些联通盒子绑死了光猫MAC,插路由器就认证失败。这种别硬刚,直接用他们家App投屏,画质差点,但合法,也不卡。我试过天翼超高清,网页版F12抓HLS链接,比抓组播还快,就是不能倍速。

家里路由器不是摆设,它是你家网络的开关。
家里IPTV盒子不是只能插光猫,插哪都行,只要配对。
家里网络自由,从拔掉那根线开始。

继续阅读(剩余50%
查看全文
我要举报