Browse Source

feat: china-ip fetch

dev
Dnomd343 2 years ago
parent
commit
bb6c981870
  1. 51
      assets/china-ip.py

51
assets/china-ip.py

@ -0,0 +1,51 @@
#!/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))
Loading…
Cancel
Save