小祎

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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
'''

  

posted on 2016-12-12 17:12  小祎  阅读(638)  评论(0编辑  收藏  举报