Python第三方模块IPy,可完成高效的IP规划工作
#安装 #pip3 install IPy #最新版本V0.83
IP地址 网段的基本处理
>>>from IPy import IP >>>ip = IP('192.168.1.25') #反向解析地址格式 >>>ip.reverseNames() #判断网络类型,公网或私网 >>>ip.iptype() #转换为整型,十六进制,二进制 >>>ip.int() >>>ip.strHex() >>>ip.strBin()
多网络计算方法
#判断IP和网段是否包含有另一网段 >>>'192.168.1.100' in IP('192.168.1.0/24') >>>True #判断两个网段是否存在重叠 >>>IP('192.168.0.0/23').overlaps('192.168.1.0/24') >>>1 #1代表存在重叠 >>>IP('192.168.0.0/24').overlaps('192.168.2.0') >>>0 #0代表不存在重叠
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author: CCoo2 from IPy import IP ip_s = input("请输入IP地址,或网段地址:") ips = IP(ip_s) if len(ips) > 1: #为1个网络地址 print("网络地址: %s" % ips.net()) print("网络掩码地址: %s" % ips.netmask()) print("广播地址: %s" % ips.broadcast()) print("地址反向解析: %s" % ips.reverseNames()[0]) print("网络子网数: %s" % len(ips)) else:#为1个IP地址 print("IP反向解析: %s" % ips.reverseNames()[0]) print("十六进制地址:%s" % ips.strHex()) print("二进制地址: %s" % ips.strBin()) print("地址类型: %s" % ips.iptype()) ''' 请输入IP地址,或网段地址:192.168.1.1 IP反向解析: 1.1.168.192.in-addr.arpa. 十六进制地址:0xc0a80101 二进制地址: 11000000101010000000000100000001 地址类型: PRIVATE ##################################### 请输入IP地址,或网段地址:192.168.2.0/24 网络地址: 192.168.2.0 网络掩码地址: 255.255.255.0 广播地址: 192.168.2.255 地址反向解析: 2.168.192.in-addr.arpa. 网络子网数: 256 十六进制地址:0xc0a80200 二进制地址: 11000000101010000000001000000000 地址类型: PRIVATE '''