2022-10-02 12:35:37 +00:00
|
|
|
"""
|
|
|
|
IP List Generator
|
|
|
|
------------------
|
|
|
|
|
|
|
|
Currently, Input file must be in List format for example :
|
|
|
|
|
|
|
|
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
|
|
|
1.1.1.1
|
|
|
|
1.0.0.1
|
|
|
|
8.8.8.8
|
|
|
|
2a07:e340::2
|
|
|
|
2a10:50c0::ad2:ff
|
|
|
|
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
|
|
|
|
|
|
|
|
"""
|
|
|
|
import pytz
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
filters_set = tuple(["#","###","!"])
|
|
|
|
|
|
|
|
def caddy(listname, input, output):
|
|
|
|
with open(input ,'r') as f:
|
|
|
|
readinput = f.read().splitlines()
|
|
|
|
with open(output, 'w') as f:
|
|
|
|
f.write("# Caddy IP List Generated\n# Date Generated : " + BuildDate()+"\n#\n")
|
|
|
|
f.write("@"+listname+" {\n")
|
|
|
|
for line in readinput:
|
|
|
|
if line.strip() and not line.startswith((filters_set)):
|
|
|
|
f.write(" remote_ip " + line + "\n")
|
|
|
|
else:
|
|
|
|
pass
|
|
|
|
f.write("}")
|
|
|
|
|
|
|
|
def nginx(input, output):
|
|
|
|
with open(input ,'r') as f:
|
|
|
|
readinput = f.read().splitlines()
|
|
|
|
with open(output, 'w') as f:
|
|
|
|
f.write("# Nginx IP List Generated\n# Date Generated : " + BuildDate()+"\n#\n")
|
|
|
|
for line in readinput:
|
|
|
|
if line.strip() and not line.startswith((filters_set)):
|
|
|
|
f.write("deny " + line + ";\n")
|
|
|
|
else:
|
|
|
|
pass
|
|
|
|
|
|
|
|
def htaccess(input, output):
|
|
|
|
with open(input ,'r') as f:
|
|
|
|
readinput = f.read().splitlines()
|
|
|
|
with open(output, 'w') as f:
|
|
|
|
f.write("# htaccess IP List Generated\n# Date Generated : " + BuildDate()+"\n#\n")
|
|
|
|
f.write("Order Deny,Allow\n")
|
|
|
|
for line in readinput:
|
|
|
|
if line.strip() and not line.startswith((filters_set)):
|
|
|
|
f.write("Deny from " + line + "\n")
|
|
|
|
else:
|
|
|
|
pass
|
|
|
|
|
2022-10-07 18:11:19 +00:00
|
|
|
|
|
|
|
"""
|
|
|
|
Must be in IP List Format!!
|
|
|
|
"""
|
|
|
|
def combine(destination, fileadd):
|
|
|
|
# Append List
|
|
|
|
with open(fileadd ,'r') as f:
|
|
|
|
readinput = f.read().splitlines()
|
|
|
|
with open(destination, 'a') as f:
|
|
|
|
for line in readinput:
|
|
|
|
f.write(line + "\n")
|
|
|
|
f.close()
|
|
|
|
# Clear Duplicated
|
|
|
|
with open(destination, 'r') as f:
|
|
|
|
lines = set(f.readlines())
|
|
|
|
with open(destination, 'w') as f:
|
|
|
|
f.writelines(set(lines))
|
|
|
|
f.close()
|
|
|
|
# Sort
|
|
|
|
with open(destination, 'r') as f:
|
|
|
|
lines = sorted(f.readlines())
|
|
|
|
with open(destination, 'w') as f:
|
|
|
|
for line in lines:
|
|
|
|
f.write(line)
|
|
|
|
|
2022-10-02 12:35:37 +00:00
|
|
|
def BuildDate():
|
|
|
|
UTC = pytz.utc
|
|
|
|
date = datetime.datetime.now(UTC)
|
|
|
|
return str(date)
|