This commit is contained in:
root
2019-08-28 16:58:30 +02:00
parent 58c8ecc682
commit 7dd9ec5fd5
5 changed files with 54 additions and 25 deletions
+18 -12
View File
@@ -1,11 +1,11 @@
#!/usr/bin/python
import os
import json
import pprint
import requests
import re
import ipaddress
print('Reading lists of URL to download')
with open("lists.json","r") as f:
data = json.load(f)
@@ -28,16 +28,22 @@ def is_ipv4(ip):
else:
return False
def is_ipv6(ip):
try:
ip_addr = ipaddress.IPv6Address(ip)
except ipaddress.AddressValueError:
return False
return ip_addr.version == 6
def extract_ipv6(source):
return re.findall(regex_ipv6_cidr,source)
def is_ipv6_subnet(ip):
try:
addr = ipaddress.IPv6Network(ip)
except Exception as e:
return False
return True
#if re.match("^(((?=.*(::))(?!.*\3.+\3))\3?|[\dA-F]{1,4}:)([\dA-F]{1,4}(\3|:\b)|\2){5}(([\dA-F]{1,4}(\3|:\b|$)|\2){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})\Z",ip):
# return True
#else:
# return False
def download_list(list_name,list_url):
print("- Downloading {}".format(list_name))
@@ -45,18 +51,19 @@ def download_list(list_name,list_url):
try:
filedata = requests.get(list_url).content.split('\n')
except Exception as e:
print(e)
print("Error downloading {} : {}".format(list_name,e))
return filedata
def update_ipset_files():
ipv4_list = []
ipv6_list = []
net_list = []
for elem in ['ipv4','ipv6','net']:
for elem in ['ipv4','net']:
print("= Update {}".format(elem))
elem_list = []
for key,url in data['lists'][elem].iteritems():
dl_list = download_list(key,url)
ipv4_tab = []
@@ -75,17 +82,16 @@ def update_ipset_files():
if elem == "net":
if is_subnet(line):
subnet_tab.append("add blacklist_net {} -exist".format(line))
if elem == "ipv4": ipv4_list.extend(ipv4_tab)
if elem == "ipv6": ipv6_list.extend(ipv6_tab)
if elem == "net": net_list.extend(subnet_tab)
ipv4_list = sorted(set(ipv4_list))
ipv6_list = sorted(set(ipv6_list))
inet_list = sorted(set(net_list))
save_to_file(ipv4_list,"ipset_ipv4.set")
save_to_file(ipv6_list,"ipset_ipv6.set")
#save_to_file(ipv6_list,"ipset_ipv6.set")
save_to_file(net_list,"ipset_subnets.set")
update_ipset_files()