mirror of https://github.com/dnomd343/ClearDNS
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.1 KiB
52 lines
2.1 KiB
2 years ago
|
#!/usr/bin/env python3
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import os
|
||
|
from IPy import IP, IPSet
|
||
|
|
||
|
source = [
|
||
|
'curl -sL https://github.com/misakaio/chnroutes2/raw/master/chnroutes.txt | sed \'/^#/d\'',
|
||
|
'curl -sL https://github.com/metowolf/iplist/raw/master/data/special/china.txt',
|
||
|
'curl -sL https://github.com/17mon/china_ip_list/raw/master/china_ip_list.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/cernet.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/china.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/chinanet.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/cmcc.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/cstnet.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/drpeng.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/googlecn.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/tietong.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/unicom.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/cernet6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/china6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/chinanet6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/cmcc6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/cstnet6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/drpeng6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/googlecn6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/tietong6.txt',
|
||
|
'curl -sL https://gaoyifan.github.io/china-operator-ip/unicom6.txt',
|
||
|
]
|
||
|
|
||
|
ips = set()
|
||
|
for script in source:
|
||
|
raw = os.popen(script).read().split('\n')
|
||
|
ips.update(filter(None, raw))
|
||
|
|
||
|
v4 = IPSet()
|
||
|
v6 = IPSet()
|
||
|
for ip in ips:
|
||
|
try:
|
||
|
ipAddr = IP(ip)
|
||
|
(v4 if ipAddr.version() == 4 else v6).add(ipAddr)
|
||
|
except:
|
||
|
pass
|
||
|
|
||
|
ips = []
|
||
|
for ip in v4:
|
||
|
ips.append(str(ip) + ('' if '/' in str(ip) else '/32'))
|
||
|
for ip in v6:
|
||
|
ips.append(str(ip) + ('' if '/' in str(ip) else '/128'))
|
||
|
|
||
|
print('\n'.join(ips))
|