使用openwrt的tcpdump对机顶盒的iptv源进行抓包
侧边栏壁纸
  • 累计撰写 17 篇文章
  • 累计收到 519 条评论

使用openwrt的tcpdump对机顶盒的iptv源进行抓包

syqman
2024-03-27 / 0 评论 / 41 阅读 / 正在检测是否收录...

前提

自从广电对直播类的app进行封杀了之后,使用iptv观看直播的方式又重新被很多人拿出来了,很多时候你真正会用到的可能是除夕那一天的春节联欢晚会,或者小孩子学校被强制安排的观看任务,一整年下来使用的次数屈指可数,但是本着可以不用,但是不能用不了的原则,于是有了本文,也当作记录下自己的折腾过程。
其实网上有很多公开分享的本省运营商的iptv源,你大可以找个分享日期近的用用,通常情况下,这些源并没有那么容易失效,比如本人的福建电信iptv源,很多节目地址好几年没更新过了。如果你不想用运营商自带的机顶盒观看直播,想用网络电视的直播app壳子观看直播,那就可以试着自己抓下自己机顶盒的iptv源。
网上抓包的教程很多种,我这边就不一一列举,我就记录一下对我来说比较简单的方式,如果你的盒子只要插网线或者wifi连接就可以观看直播,不需要插光猫的itv口,可以试试我的方法。

教程

1.准备工作
光猫桥接,路由器使用openwrt系统进行拨号,比如我用的是红米AX6000的immortalwrt系统进行拨号,软件包搜索tcpdump,系统未安装过的点安装。

lu9kogaf.png

2.登录openwrt 后台
使用ssh工具连接你的openwrt,机顶盒网线连接路由器lan口,然后关机,ssh后台输入

tcpdump host 192.168.1.222  -w /tmp/itv.cap

host后面的值换成机顶盒的ip即可,抓包后的文件放在/tmp目录下,文件名是itv.cap,然后盒子开机,等到盒子进入首页播放界面的时候, 输入ctrl + c取消抓包,然后把抓取的itv.cap下载到本地,用Wireshark打开。

3.分析抓包数据
Wireshark打开数据包后,按ctrl + F 搜索 rtsp,找到如下的http流,关键词(text/html),你会发现下面有一些cctv、channelname关键词,乱码不管。

lu9l6af3.png
右键追踪流-http流,编码选择GB2312,然后全选框里的内容,另存为itv.txt
lu9lcbe1.png

4.导出直播源
现在是一堆包含iptv源的代码,我们需要提取下内容,方便我们导入iptv直播软件。方法其实很多种,可以发给AI让他处理下,像我就直接发给kimi.ai,让他帮我写一个py脚本,下面是脚本代码:

import re

# 假设 text 是您的文本内容
text = """
jsSetConfig('Channel','ChannelID=\"ch00000000000000001191\",ChannelName=\"CCTV1高清\",UserChannelID=\"21\",ChannelURL=\"rtsp://...\"...
"""

# 定义正则表达式模式
pattern = r'ChannelName=\"(.*?)\".*?ChannelURL=\"(.*?)\"'

# 使用正则表达式查找所有匹配项
matches = re.findall(pattern, text)

# 将匹配结果存储在列表中
results = []
for name, url in matches:
    # 将 ChannelName 和 ChannelURL 结合,并保留 URL 的查询参数
    result = f"{name}, {url}"
    results.append(result)

# 将结果保存到文件中
with open('channels.txt', 'w', encoding='utf-8') as file:
    for result in results:
        file.write(result + '\n')

# 打印输出结果
for result in results:
    print(result)

脚本怎么使用不展开了,不会的找AI教你哈。导出的效果如下:
lu9llxl8.png
以后源失效了,或者新增节目可以再手动抓一下,实测发现福建各地电信的iptv源地址几乎一样,除了ip地址不一样,其他的地址频道代码都一致。

0

评论 (0)

取消