问题描述
我需要有关创建脚本的帮助,该脚本将处理具有IP和网络名称的文件。 例子:
输入:192.168.1.0/24
输出:
192.168.1.0,NetworkName
192.168.1.2,网络名称
192.168.1.3,NetworkName
等...
192.168.1.255,NetworkName
输入:72.44.22.32/26
72.44.22.33,NetworkName
72.44.22.34,NetworkName
72.44.22.35,NetworkName
等...
72.44.22.95,NetworkName
import struct,socket
file = open('cidr')
def ips(start,end):
start = struct.unpack('>I',socket.inet_aton(start))[0]
end = struct.unpack('>I',socket.inet_aton(end))[0]
return [socket.inet_ntoa(struct.pack('>I',i)) for i in range (start,end)]
for x in file:
#formating Section
y=x.strip("\"")
list2=y.split(",",2)
name=list2.pop(1)
ipcidr=list2.pop(0)
list3=ipcidr.split("/",1)
#seperating the IP and CIDR
cidr= list3.pop(1)
ip= list3.pop(0)
cidr = int(cidr)
start = (i >> cidr) << cidr # shift right end left to make 0 bits
end = i | ((1 << cidr) - 1) # or with 11111 to make highest number
start = socket.inet_ntoa(struct.pack('>I',start)) # real ip address
end = socket.inet_ntoa(struct.pack('>I',end))
ips(start,end)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)