Нужно каждый ip из текстового файла разбить на диапозон ip адресов /24, от 0 до 255 и сохранить в файл, язык исполнения не важен. Первый контакт ПМ.
# -*- coding: utf-8 -*-
# !/bin/python
import sys
import os
def validIP(address):
parts = address.split(".")
if len(parts) != 4:
return False
for item in parts:
if not 0 <= int(item) <= 255:
return False
return True
def ipTo24(address):
adrss = []
parts = address.split(".")
if len(parts) == 4:
fpart = parts[0] + "." + parts[1] + "." + parts[2] + "."
for i in range(0, 256):
adrss.append(fpart + str(i))
return adrss
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: ip.py ips.txt")
sys.exit(-1)
with open(sys.argv[1], 'r') as f:
iplist = f.read().splitlines()
for ip in iplist:
if validIP(ip):
with open(sys.argv[1] + ".out.txt", "a") as file:
file.writelines("%s\n" % line for line in ipTo24(ip))
Уже написали но все равно спасибо!Python:# -*- coding: utf-8 -*- # !/bin/python import sys import os def validIP(address): parts = address.split(".") if len(parts) != 4: return False for item in parts: if not 0 <= int(item) <= 255: return False return True def ipTo24(address): adrss = [] parts = address.split(".") if len(parts) == 4: fpart = parts[0] + "." + parts[1] + "." + parts[2] + "." for i in range(0, 256): adrss.append(fpart + str(i)) return adrss if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: ip.py ips.txt") sys.exit(-1) with open(sys.argv[1], 'r') as f: iplist = f.read().splitlines() for ip in iplist: if validIP(ip): with open(sys.argv[1] + ".out.txt", "a") as file: file.writelines("%s\n" % line for line in ipTo24(ip))
На python3
Использование: python3 ip.py ips.txt