Files
Geo-Firewall/geo-firewall.py
2021-10-08 10:10:12 +08:00

39 lines
1.0 KiB
Python
Executable File

#!/usr/bin/python3
import netaddr
import csv
import sys
import os
# inFilePath = 'GeoIPCountryWhois.csv'
# inFilePath = 'au.csv'
inFilePath = 'firewall.txt'
os.system('sudo ipset create TEST2 hash:net -exist')
os.system('sudo ipset flush TEST2')
iplist = []
with open(inFilePath, 'r') as inFile:
# fieldnames = ['StartIP', 'EndIP', 'DecIPStart', 'DecIPEnd', 'CountryCode', "Country"]
# fieldnames = 'StartIP', 'EndIP','Number','Date']
# csvReader = csv.DictReader(inFile, fieldnames=fieldnames)
# for row in csvReader:
# if row['CountryCode'] == 'AU':
# iplist.extend(netaddr.iprange_to_cidrs(row['StartIP'], row['EndIP']))
for row in inFile:
print(row)
if not row.startswith("#"):
iplist.extend(netaddr.IPNetwork(row))
print("########################################")
summary_subnets = netaddr.cidr_merge(iplist)
for subnet in summary_subnets:
print(subnet)
os.system('sudo ipset add TEST2 ' + str(subnet))
os.system('sudo ipset swap TEST TEST2')
os.system('sudo ipset destroy TEST2')