Измените диапазон IP - адресов на IP-подсеть
У меня есть скрипт, который выполняет поиск в интернете для предоставленного диапазона IP-адресов. Диапазон IPs предоставляется в формате xxx.xxx.xxx.x-xxx.xxx.xxx.x, и я искал, чтобы выполнить поиск на основе данной подсети xxx.xxx.xxx.x/32/24/16/8 из файла
это та часть скрипта, которая отвечает за поиск в интернете
# Return IPs in IPv4 range, inclusive. def IPsRange(start='', end=''): if not start and not end: return [] if not end and start.__contains__("-"): start, end = start.split("-") end = end.replace("\n","") start = int(ip_address(start).packed.hex(), 16) end = int(ip_address(end).packed.hex(), 16) return [ip_address(ip).exploded for ip in range(start, end)] # Scan IP address range def ScanRange(ranges): threads = [] # *-- Scan IP range --* for address in IPsRange(ranges): t = Thread( target=__СheckAddrThreaded, args=(address,) ) threads.append(t) t.start() for thread in threads: thread.join()
Как я могу использовать подсеть вместо диапазона IP-адресов?
Спасибо
Что я уже пробовал:
Я пытался
>>> import ipaddress >>> def get_all_ips_by_subnet(subnet): ... l = [*map(str, ipaddress.IPv4Network(subnet, strict=False))] ... return l ... >>> l = get_all_ips_by_subnet("172.17.20.30/30") >>> l ['172.17.20.28', '172.17.20.29', '172.17.20.30', '172.17.20.31']