iptv信源-ip变化的酒店源代理 思路以及方法,扫源工具脚本

前言

逛论坛有时候会有些大佬发一些酒店源,经过试用,会发现,这些酒店的ip每天都是变化的,但是有限,只有最后一位会变化,那么,我们探测出有效的ip,就可以一直白嫖下去

尝试

以下以http://59.32.98.125:9901/tsfile/live/0141_1.m3u8 这个原地址为例

1.最简单的ip端口探测

nmap 59.32.98.0/24 -p9901 --open|egrep -o "59.32.98.[0-9]+"

经过探测,发现有几个ip是开启了9901端口的,测试了下都是可用的,所以,只需要每天探测下可用的ip,然后自己写个脚本替换即可.

2.ffmpeg验证m3u8有效性探测

ip端口的探测简单快速,但是如果对方开了端口但是实际iptv不可用,就需要验证下实际的有效性了,如果机器安装了ffmpeg,那么可以用来检测直播源的有效性以及质量.脚本命名为scantv.sh:

#!/bin/bash

baseurl=$1
s=`echo $baseurl|grep -o  '\[.*\]'|sed -e 's/\[//g' -e 's/\]//g'|awk -F"-" '{print $1}'`
e=`echo $baseurl|grep -o  '\[.*\]'|sed -e 's/\[//g' -e 's/\]//g'|awk -F"-" '{print $2}'`


for n in $(seq -w $s $e)
do
  h=""
  w=""
  url=`echo $baseurl|sed "s/\[.*\]/$n/g"`
  res=`ffprobe -user_agent "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36" -timeout 5000  -select_streams v -show_streams -v quiet -of csv="p=0" -of json -i $url`
  [ $(echo $res|grep -c height) -gt 0 ] && h=`echo $res|jq .streams[].height`
  [ $(echo $res|grep -c height) -gt 0 ] && w=`echo $res|jq .streams[].width`
  [ $(echo $res|grep -c height) -gt 0 ] && rate=`echo $res|jq .streams[].avg_frame_rate|sed -e 's/"//g' -e 's/\/1//g'`
  [ "0$h" != "0" ] && [ "0$w" != "0" ] && echo "$n[${w}X${h}],$url"
done

./scantv.sh http://59.32.98.[2-254]:9901/tsfile/live/0141_1.m3u8
运行后获取到ip有效ip,当然,此脚本也可以作为一个shell版本的扫源工具.

125[1920X1080],http://59.32.98.125:9901/tsfile/live/0141_1.m3u8
235[1920X1080],http://59.32.98.235:9901/tsfile/live/0141_1.m3u8
247[1920X1080],http://59.32.98.247:9901/tsfile/live/0141_1.m3u8

3.纯shell验证

有时候工具不好安装的话,那么就只能使用一些编程语言,以linux为例,最简单的就是shell和python,我们可以利用是否可以下载m3u8来判断源是否有效,不过相比ffmpeg可靠性并不高,但是相比ip端口探测,明显可靠,如果想提高可靠性,可以继续打开m3u8文件后测试ts切片的下载状态来提高可靠性,不过一般情况下,并不是必须的!所以,第二种方法稍微改动下,即可

#!/bin/bash

baseurl=$1
s=`echo $baseurl|grep -o  '\[.*\]'|sed -e 's/\[//g' -e 's/\]//g'|awk -F"-" '{print $1}'`
e=`echo $baseurl|grep -o  '\[.*\]'|sed -e 's/\[//g' -e 's/\]//g'|awk -F"-" '{print $2}'`


for n in $(seq  $s $e)
do
  url=`echo $baseurl|sed "s/\[.*\]/$n/g"`
  wget -q -O  index.m3u8 --tries=1 -T 1 $url
  [ $? -eq 0 ] && echo "${url}"
done

保存命名为scantv.sh 按照步骤2执行后,同样可以输出有效的地址.略

福利

从论坛随便看到两三个代理,送给有缘人,后面的id需要自扫,这几个都是简单的ip端口探测,已经存活挺久了,不知道啥时间gg,让我们来看看能多久:)
https://epg.112114.xyz/hbjd/106.115.24/9901/tsfile/live/0117_1.m3u8
https://epg.112114.xyz/gsjd/59.32.98/9901/tsfile/live/0141_1.m3u8
https://epg.112114.xyz/stjd/211.97.63/801/hls/81/index.m3u8
https://epg.112114.xyz/gdjd/111.59.189/8445/tsfile/live/1022_1.m3u8