#!/usr/bin/env python
#coding:utf-8
from IPy import IP
#区分出IPv4与IPv6
print IP('10.0.0.0/8').version() , IP('::1').version()
def wanduan():
ip = IP('192.168.0.0/24')
print ip.len() #网段的IP个数
for x in ip:
print x #所有IP清单
def zhuanhuan():
print IP("192.168.1.20").reverseNames() #反向解析地址格式
print IP('8.8.8.8').iptype() #ip类型,公网'PUBLIC' 私网'PRIVATE'
print IP("8.8.8.8").int() #转换成整型格
print IP('8.8.8.8').strHex() #转换成十六进制格式
print IP('8.8.8.8').strBin() #转换成二进制格式
print (IP(0x8080808)) #十六进制转成IP格式
#根据IP与掩码生产网段格式
print IP('192.168.1.0').make_net('255.255.254.0')
print IP('192.168.1.0/255.255.255.0', make_net=True)
print IP('192.168.1.0-192.168.1.255', make_net=True)
#strNormal
for i in range(4):
print "strNormal(%s):%s" % (i,IP('192.168.1.0/24').strNormal(i))
def jishuan(ip_s):
ips = IP(ip_s)
if len(ips) > 1: #多个地址
print("网络地址: %s" % ips.net())
print("网络掩码: %s" % ips.netmask())
print("广播地址: %s" % ips.broadcast())
print('地址反向解析: %s' % ips.reverseNames()[0])
print('网络子网数: %s' % len(ips))
else:
#为单个IP地址
print ('IP反向解析: %s' % ips.reverseNames ()[0])
print ('十六进制地址: %s' % ips.strHex ())
print ('二进制地址: %s' % ips.strBin ())
print ('iptype: %s' % ips.iptype ()) #输出地址类型,如PRIVATE、PUBLIC、LOOPBACK等