Python IPy模块
#!/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模块的更多相关文章
- Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)
IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. #!/usr/bin/env python # -*- coding: ut ...
- IPy模块--IP地址处理
Python之实用的IP地址处理模块IPy 实用的IP地址处理模块IPy 在IP地址规划中,涉及到计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP类型等 别担心,Ipy模块拯救你.Ipy ...
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
- Python的模块引用和查找路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python基础-模块
一.模块介绍 ...
- python 安装模块
python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...
- python Queue模块
先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...
随机推荐
- Redis的五种数据类型
官方的几篇很好的文章: https://redis.io/topics/data-types https://redis.io/topics/data-types-intro https://redi ...
- 使用telnet模拟http请求
HTTP 首先我们需要知道http报文是由一系列的字符串组成的.然后我们来了解具体的相关事项. 方法 HTTP支持几种不同形式的请求命令,这些命令就被称为HTTP方法.每个HTTP请求报文都包含一个方 ...
- ASP.NET MVC与WebForm对比
MVC优点:1.分离更彻底,分层清晰,易于维护和扩展.2.验证更加方便快捷.3.无ViewState,页面更加干净4.路由更容易定义url,对SEO比较好.5.强类型VIEW实现,更安全高效. Web ...
- 推荐一个php7+ mongodb三方类
373 次阅读 · 读完需要 8 分钟 5 由于项目需要,把项目升级到了php7.但是升级了之后发现mongo扩展不能用了.php7.0以上只支持mongodb扩展了.而mongodb扩展的驱 ...
- linux_目录基本操作
ls命令 ls命令用来显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 语法 $ ls [选项] [目录] 选项 说明 -a 显示所有档案 ...
- pandas shift
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/24 15:03 # @Author : zhang chao # @Fi ...
- Socket网络编程--Libev库学习(1)
这一节是安装篇. Socket网络编程不知不觉已经学了快两个月了.现在是时候找个网络库学学了.搜索了很多关于如何学网络编程的博客和问答.大致都是推荐学一个网络库,至于C++网络库有那么几个,各有各的好 ...
- Java_常用工具类收集
一.日期工具类 package com.ebd.application.common.utils; import java.sql.Timestamp; import java.text.DateFo ...
- mysql5.7 rpm安装教程
注意版本和此次更新时间 2017-12-03 版本:mysql-5.7.20-1.el6.x86_64 环境:linux6.x 官方下载地址: wget https://dev.mysql.co ...
- Codeforces Round #410 (Div. 2) B
B. Mike and strings time limit per test 2 seconds memory limit per test 256 megabytes input standard ...