|
本帖最后由 迷路的羽先生 于 2023-4-4 10:07 编辑
1. 抓包
我用的是 throwing star lan tap 这个东西,具体玩法可以参考 https://www.right.com.cn/FORUM/thread-308436-1-1.html
2. 鉴权
抓到包之后,最核心的就是把鉴权搞到手,我家是ipoe鉴权,经过查询资料,最终解决方案是在openwrt里使用dhcp,然后配置 sendopts 参数 注意这个方案里,要把 openwrt 的 dhcp 脚本修改一下:
- sed -i 's/\${vendorid:+-V "$vendorid"}/-V ""/g' package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
复制代码
当然我看过 https://www.right.com.cn/forum/thread-4110060-1-1.html 这个帖子,我觉得这种通过报文重放攻击的方式来实现iptv口获取ip也是可行的。
然后因为我用的是一个4网口工控机,有富余的实体网口来连接光猫的iptv口,所以没有做vlan,单线复用这种东西,单线复用这部分网上的教程也很多,本身也不难。
3. udpxy + omcproxy
omcproxy 里设置:
udpxy 里设置:
注意这两个里面的接口名是有区别的,可以参考我的接口:
现在就可以通过 http://[你的路由器ip]:4022/rtp/[组播地址] 的方式在potplayer或者vlc里播放了。
4. 回放
这一步需要鉴权,我参考的这个 https://www.right.com.cn/forum/thread-4059959-1-1.html
我是长春电信,和这个四川电信略有不同,最终是解包了机顶盒的app,然后反汇编其中的native部分才找到全部的鉴权参数的。
然后就是喜闻乐见的自动化了,我花时间看了一下python,然后就写了一个自动鉴权,登陆,提取组播+单播地址,提取节目单的脚本 https://github.com/VergilGao/Tel ... ster/src/stbmock.py
然后封装成docker,在nas里通过定时任务自动化运行。
这样节目单也不需要用公网的节目单了,相对来说启动速度更快。
5. mwan3
这一步也是网上教程居多,我目前只是粗暴的将 10.0.0.0/8 全部 iptv ,还在研究更精确的分流方法,就不在这献丑了。
6. 文件托管
我在内网 nginx 部署了一个文件托管应用
- server {
- listen 80;
- listen [::]:80;
- server_name files.example.com;
- return 301 https://$host$request_uri;
- }
- server {
- listen 443 ssl http2;
- listen [::]:443 ssl http2;
- server_name files.example.com;
- access_log /config/log/nginx/files/access.log;
- error_log /config/log/nginx/files/error.log;
- ssl_protocols TLSv1.2 TLSv1.3;
- ssl_prefer_server_ciphers on;
- ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
- ssl_session_timeout 10m;
- ssl_session_cache shared:SSL:10m;
- ssl_session_tickets off;
- ssl_certificate /config/keys/files/cert.pem;
- ssl_certificate_key /config/keys/files/key.pem;
- autoindex on;
- autoindex_exact_size on;
- autoindex_localtime on;
- charset utf-8;
- include /config/nginx/error_pages.conf;
- root /webroot/public/;
- location / {
- }
- }
复制代码
这样,我的内网设备想要获取节目单和m3u文件就可以不用smb之类的方式了,直接输入 https://files.example.com/iptv/epg.xml 就是节目单,而且这个应用是纯内网的,不对外网开放,所以网络安全问题较少。
因为我家里有两个电视,然后我自己有时候还要用电脑看iptv,通过这个方式,只要装了 kodi + simple iptv client 插件就能看 iptv + 回放了。
7. 回放问题
以前我看回放是有一个问题的,就是回放不能拖动进度条,最后这个问题我在前几天解决了: https://www.right.com.cn/forum/thread-8282663-1-1.html
8. 总结
整个 iptv 应用的部署规划可以说是一个系统工程,涉及到了wireshark抓包、python爬虫、ida反汇编、docker部署、nginx部署、linux定时任务,最终完美实现了一次部署,自动化运行,多设备可看回放可任意跳转时间进度观看iptv的目的。虽然涉及到的技术很多,但都是最浅显的应用,这也正符合了当年我开始学习编程时立下的目标:
通过现代science的力量,完美自己的生活体验。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|