Python代码:
import ipaddress
def ipadd_calc(ip_net):
try:
net = ipaddress.ip_network(ip_net, strict=False)
result = '是否是私有地址:%s ' % str(net.is_private)
result += '\n所属IP子网:%s' % net.with_netmask
result += '\n所属IP子网:%s/%s (前缀表达法)' % (net.network_address, net.prefixlen)
result += '\n网络号:%s ' % str(net.network_address)
result += '\n广播地址:%s ' % str(net.broadcast_address)
sum_C = int(net.num_addresses/256)
if sum_C >= 1:
result += '\n包含:%s个C' % sum_C
result += '\nIP地址总数:%s ' % str(net.num_addresses)
result += '\n可用IP地址总数:%s' % str(len([x for x in net.hosts()]))
result += '\n起始可用IP地址:%s ' % str([x for x in net.hosts()][0])
result += '\n最后可用IP地址:%s ' % str([x for x in net.hosts()][-1])
result += '\n可用IP地址范围:%s ' % str([x for x in net.hosts()][0]) + ' ~ ' + str([x for x in net.hosts()][-1])
result += '\n子网前缀长度:%d' % net.prefixlen
result += '\n掩码地址:%s ' % str(net.netmask)
result += '\n反掩码地址:%s ' % str(net.hostmask)
return result
except ValueError:
return('您输入格式有误,请检查!')
if __name__ == '__main__':
ip_net = '192.168.57.255/255.255.192.0'
print(ipadd_calc(ip_net))
运行效果:

文章评论