a_ip:10.10.15.100
b_ip:10.10.15.101
c_ip:10.10.10.100
netmask:255.255.255.0
def numtobinary(num):
binary = ''
a = int(num)
while 1:
if a == 0 or a == 1:
binary = '%s%s' % (str(a), binary)
break
num = a % 2
binary = '%s%s' % (str(num), binary)
a = a / 2
binarylen = len(binary)
binary = '%s%s' % ('0' * (8 - binarylen), binary)
return binary
上面这个函数,是将一个 0<=x<=255的十进制数转换成二进制数。
def yu_num(ip, netmask):
ips = ip.split('.')
ipstr = numtobinary(ips[0]) + numtobinary(ips[1]) + numtobinary(ips[2]) + numtobinary(ips[3])
netmasks = netmask.split('.')
netmaskstr = numtobinary(netmasks[0]) + numtobinary(netmasks[1])