原理与实现过程
源码地址:点我
1、使用网络空间资产搜索引擎fofa、zoomeye,找到提供iptv服务的ip
查询语法"iptv/live/zh_cn.js" && country="CN" && region="Anhui"
2、通过列表推导式构造链接并获得频道名称和播放地址
http://ip + 端口 + /iptv/live/1000.json?key=txiptv
例如:http://220.180.112.196:9901/iptv/live/1000.json?key=txiptv
,如果是有效链接,访问就会返回包含频道信息的json
文件
构造出该ip同一子网下所有可用链接,在ip.py
源码中:
访问可用的json链接,获取频道名称和播放地址,通过channel.py
实现
3、 测试频道是否可用
由m3u8.py
实现,核心函数如下:
使用semaphore控制并发数,可以防止高并发请求时卡死。