今天来分享一下用python获取酒店源和组播源的原理
一、python获取酒店源原理:
前面有介绍python自动化获取酒店源
经验∶适合纯小白记录的python自动化运行爬取酒店IPTV直播源
首先我们看一下python代码:
search_url = 'https://fofa.info/result?qbase64='
表示:搜索引擎为fofa.info
search_txt = f'"iptv/live/zh_cn.js" && country="CN" && region="{province}"'
表示:搜索指定省份的页面包含”iptv/live/zh_cn.js”的结果
测试获得的该ip地址的指定地址是否能访问,能访问就从1000.json获取节目列表,如获得一个IP:113.15.184.96:8181,会通过测试http://113.15.184.96:8181/iptv/live/1000.json?key=txiptv是否能访问,能访问就从该文件提取节目表并保存。
如我们用浏览器打开http://113.15.184.96:8181/iptv/live/1000.json?key=txiptv,可以看到该json文件保存有节目相关信息:
最后用python提取我们需要的内容保存为我们的播放列表。
二、python获取组播源的原理
组播节目的播放地址一般格式为:http://IP:Port/udp/Multicast,其中为IP:Port外网的IP,Multicast为组播地址,每个地区的运营商的组播地址是一样的,因此我们要扫描组播节目需要知道IP地址和端口,还要知道组播地址,看一下组播源获取的代码:
subnet_start = "112.19.171.1"
subnet_end = "112.19.171.254"
这里定义了需要扫描的IP起止
ports = [6600, 5050, 5005, 8086, 8088, 8888, 9080, 8000, 9026, 3952, 9000, 9999, 5555]
ports表示需要扫描的端口,因此我们自己在做组播转单播的时候端口尽量不要设置默认的、常规的、简单的如8888之类的,这样容易被程序所扫描到。
url = f"http://{ip}:{port}/udp/230.1.2.226:11111/qist.m3u8"
表示通过访问每个ip:port/该地区其中一个组播节目来判断ip:port是否有组播数据,如访问成功就将该IP:port保存至文件。
后续需要将该地区的组播节目改写为组播转单播的形式,即IP:port/udp/组播地址
说明:组播扫描相对比较麻烦,需要自己修改扫描的IP范围和该IP范围对应的组播节目,否则无法完成扫描。如感兴趣可以下载该代码去研究研究,注:该代码来源于网络,仅供测试使用。
三、写在后面
以上为本人个人理解,仅供参考。如需组播扫描代码请后台回复【240419】获取下载连接进行下载,
使用说明:该代码默认扫描四川移动的组播,如有需要可修改subnet_start、subnet_end、ports改为自己需要扫描的ip段和端口号,239.93.0.118修改为该地区的组播地址,当然IP、端口越多,扫描时间也越长,如从XXX.XXX.1.1-XXX.XXX.254.254,端口有5个,需要扫描数据即为254*254*5=322580次,基本上需要扫一两小时。
欢迎关注本公众号,后台发消息给我,我会即时进行回复的哦。