Pull to refresh

iptv через VPN. Получение ip-адресов

Reading time1 min
Views11K

Зачем всё это нужно

У меня дома перестало работать iptv с одного известного сервиса (где за 1 доллар в месяц тебе дают много-много каналов). Попробовал через vpn - всё работает. Но не буду же я весь трафик с роутера кидать через vpn?

Сам я использую для выборочного обхода свою статью. Осталось узнать как найти все ip адреса, которые используются в моём iptv-плейлисте.

Исходные данные

Исходные данные это iptv плейлист. Выглядит он примерно вот так:

#EXTM3U
#EXTINF:0 tvg-rec="7",Первый канал FHD
#EXTGRP:Общие
http://mydomain.mysite.net/iptv/MyKey/240/index.m3u8
#EXTINF:0 tvg-rec="7",Первый канал HD
#EXTGRP:Общие
http://mydomain.mysite.net/iptv/MyKey/204/index.m3u8
#EXTINF:0 tvg-rec="0",Первый канал HD 50

и таких строк у меня 2 с лишним тысячи. Осталось в каждом из них посмотреть какие адреса используются

Программа

В итоге я написал программку на python, которая в выдаёт два множества. Первое - это все ip адреса, перечисленные в файле. Второе это множества, которые свёрнуты в CIDR. Эти множества это весь диапазон адресов 192.168.0.0 - 192.168.255.255, где 192.168 это нужная сеть из iptv-файла.

Код программы:

import codecs
import urllib.request

f = codecs.open( "1.m3u8", "r", "utf_8_sig" )
myset=set()
myset2=set()
#f=open("1.m3u8")
i=0
for line in f:
    if (line.find("http")>-1):
        i+=1
        site =line.strip()
        res = urllib.request.urlopen(site).readlines()
        for sites in res:
            sites=str(sites)
            if (sites.find("http") > -1):
                s=sites[2:-3].replace("http://","")
                mas=s.split("/")
                ip=mas[0]
                myset2.add(ip)
                ips=ip.split(".")
                myset.add(ips[0]+'.'+ips[1]+'.0.0/16')
        print(i)
print(myset2)
print(myset)

На выходе

Я использовал второе множество (CIDR) для использование его в файле unblock*.txt из исходной статьи

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 5: ↑3 and ↓2+1
Comments15

Articles