#!/usr/bin/env python
# -*- coding: utf-8 -*
# Created by YangYongming at 2018/09/17 20:22
# FileName: ipy.py import IPy ip1 = IPy.IP("220.181.199.13")
ip2 = IPy.IP("220.181.199.0/24")
ip3 = IPy.IP("220.181.199.0/255.255.255.0") # IP 及 网段的基本处理
print(ip3.len()) # 计算IP地址个数:256
print(ip1.version()) # 输出IP地址的版本:4
print(ip2.netmask()) # 输出掩码:255.255.255.0
print(ip1.iptype()) # 输出IP地址是公网IP还是私网IP:PUBLIC
print(ip1.reverseName()) # 反向解析IP地址格式:13.199.181.220.in-addr.arpa.
print(ip1.reverseNames()) # 反向解析IP地址格式,返回列表格式:['13.199.181.220.in-addr.arpa.']
print(ip2.broadcast()) # 输出一个网段的广播地址:220.181.199.255
# for i in ip2: # 打印输出IP地址
# print(i) # IP地址进制转换
print(ip1.strBin()) # 转换为二进制:11011100101101010110001100001101
print(ip1.strHex()) # 转换为十六进制:0xdcb5630d
print(ip1.int()) # 转换为十进制:3702874893 # 通过wantprefixlen参数“0,1,2,3,4 ”转换成自己想要的地址格式,字符串格式的
print(ip2.strNormal(0)) # 220.181.199.0
print(ip2.strNormal(1)) # 220.181.199.0/24
print(ip2.strNormal(2)) # 220.181.199.0/255.255.255.0
print(ip2.strNormal(3)) # 220.181.199.0-220.181.199.255 # 根据IP和掩码 生成 *.*.*.*/* 的格式
print(ip1.make_net('255.255.255.0')) # 获取220.181.199.13与掩码255.255.255.0计算,CDR格式:220.181.199.0/24
print(IPy.IP('220.181.199.13/255.255.255.0', make_net=True)) # 将220.181.199.13/255.255.255.0地址格式转换为220.181.199.0/24
print(IPy.IP('220.181.199.0-220.181.199.255', make_net=True)) # 将220.181.199.0-220.181.199.255地址段转换为220.181.199.0/24格式 # 判断IP地址是否在一个网段中
print("192.168.1.22" in IPy.IP("192.168.1.0/24")) #: True
print("192.168.2.22" in IPy.IP("192.168.1.0/24")) #: False # 比较两个网段的大小
print(IPy.IP("192.168.3.0/24") > IPy.IP("192.168.1.0/24")) #: True # 判断两个网段是否有重叠
print(IPy.IP("192.168.3.0/24").overlaps("192.168.4.0/24")) # :0 表示不存在重叠
print(IPy.IP("192.168.2.0/23").overlaps("192.168.3.0/24")) # :1 表示存在重叠 # IP地址排序
L = ['1.4.5.32', '4.5.3.2', '1.2.3.4', '6.1.1.1']
L1 = sorted(L, key=lambda x: IPy.IP(x).int())
for i in L1:
print(i)

Python IPy模块的更多相关文章

  1. Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)

    IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. #!/usr/bin/env python # -*- coding: ut ...

  2. IPy模块--IP地址处理

    Python之实用的IP地址处理模块IPy 实用的IP地址处理模块IPy 在IP地址规划中,涉及到计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP类型等 别担心,Ipy模块拯救你.Ipy ...

  3. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  4. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

  5. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  6. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  7. python基础-模块

    一.模块介绍                                                                                              ...

  8. python 安装模块

    python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...

  9. python Queue模块

    先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...

随机推荐

  1. Jmeter 通过json Extracted 来获取 指定的值的id

    在没有 精确或模糊查询的接口时可以使用jmeter 获取指定的值的ID import java.lang.String ; String getTargetName="iphone632g& ...

  2. VS2012、2013使用Mysql数据库创建EF的AOD.NET实体模型

    VS2012.2013使用Mysql数据库创建EF的AOD.NET实体模型: 1.关闭VS,首先安装mysql-connector-net-6.8.3.(安装后EF创建实体模型时就可以找到Mysql的 ...

  3. Jfrog Artifactory 创建docker 镜像仓库以及 push 镜像到 该仓库.

    1. 安装aitifactory 以及 启动 使用30天有效期激活 不在阐述. 2. 登录artifactory username:admin password:password 3. 创建 仓库 在 ...

  4. Linux查看版本

    最简单的命令 lsb_release -a 查看机器名 hostname 查看内核版本 uname -r 红帽 centos 查看版本 cat /etc/redhat-release ubuntu 查 ...

  5. 小程序的wx.onAccelerometerChange

    https://www.2cto.com/kf/201802/724174.html(copy) 也许有人会问,小程序中都是竖直app形态,要横竖屏判断有什么用?即使判断出了横屏状态,你能把小程序横过 ...

  6. ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群

    ELK简介 最近有个需求搭建一套日志系统用于集成几个业务系统的日志提供快速的检索功能,目前是用Log4net存数据库+Error级别发邮件方式,也算简单暴力好用,但历史日志的模糊查询确实很慢,所以使用 ...

  7. Delphi中的Sender:TObject对象解析

    Delphi中的Sender:TObject对象解析 procedure TForm1.Button1Click(Sender: TObject); begin end; 解析:Procedure是过 ...

  8. Django-website 程序案例系列-13 中间件

    自定义中间件1: from django.utils.deprecation import MiddlewareMixin # 中间件需要引用的包 class Row1(MiddlewareMixin ...

  9. BZOJ4785 ZJOI2017树状数组(概率+二维线段树)

    可以发现这个写挂的树状数组求的是后缀和.find(r)-find(l-1)在模2意义下实际上查询的是l-1~r-1的和,而本来要查询的是l~r的和.也就是说,若结果正确,则a[l-1]=a[r](mo ...

  10. MySQL 5.7双主同步部分表

    参考:http://www.jb51.net/article/122892.htm?pc 前言: 我们要配置双主同步的mysql服务器. 暂时叫做,mysql1和mysql2吧. 一  mysql的配 ...