import sys import re def validate_ip(ip_str): reg = r"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" if re.match(reg, ip_str): return True else: return False # range extractor coded by Freak if len(sys.argv) != 3: print("Usage: " + sys.argv[0] + " list.txt ranges.txt") fh = open(sys.argv[1], "rb") out = open(sys.argv[2], "wb") lines = fh.read().replace("\r", "").split("\n") fh.close() ranges = [] for line in lines: range = ".".join(line.split(".")[:2])+".0.0/16" if not validate_ip(range.split("/")[0]): continue if range not in ranges: ranges.append(range) print("found " + str(len(ranges))) + " ranges to scan.") out.write("\n".join(ranges)) out.close()