python ip地址处理_Python学习笔记-IP地址处理模块Ipy
IP地址处理模块Ipy
IPy模块可以很好的辅助我们高效完成IP的规划工作。
安装IPy模块[[email protected] ~]# python36 -m easy_install -i http://pypi.douban.com/simple/ IPy
导入模块In [12]: from IPy import IP
1、IP地址、网段的基本处理
通过version区分IPv4和IPv6:In [13]: testip = (‘10.0.0.0/8‘,‘::1‘)
In [14]: IP(testip[0]).version()
Out[14]: 4
In [15]: IP(testip[1]).version()
Out[15]: 6
通过指定的网段输出该网段的IP个数及所有IP地址清单:In [25]: testip1 = IP(‘192.168.1.0/24‘)
In [26]: print (testip1.len())
256
In [27]: for x in testip1:
...: print (x)
...:
192.168.1.0
192.168.1.1
192.168.1.2
......
IP类常用方法:In [32]: testip2 = IP(‘192.168.100.10‘)
In [33]: testip2.reverseNames() #反向解析地址格式
Out[33]: [‘10.100.168.192.in-addr.arpa.‘]
In [34]: testip2.iptype() #返回IP类型,192.168.100.10为私有地址
Out[34]: ‘PRIVATE‘
In [35]: IP(‘8.8.8.8‘).iptype() #返回IP类型,8.8.8.8为共有地址
Out[35]: ‘PUBLIC‘
In [36]: testip2.int() #转换成整型格式
Out[36]: 3232261130
In [37]: testip2.strHex() #转换成十六进制格式
Out[37]: ‘0xc0a8640a‘
In [38]: testip2.strBin() #转换成二进制格式
Out[38]: ‘11000000101010000110010000001010‘
In [39]: print (IP(0xc0a8640a)) #十六进制转成IP格式
192.168.100.10
网络地址转换,根据IP与掩码生成网段格式:In [47]: print (IP(‘192.168.1.0‘).make_net(‘255.255.255.0‘))
192.168.1.0/24
In [48]: print (IP(‘192.168.1.0/255.255.255.0‘,make_net=True))
192.168.1.0/24
In [49]: print (IP(‘192.168.1.0-192.168.1.255‘,make_net=True))
192.168.1.0/24
通过strNormal方法指定不同wantprefixlen参数值以定制不同输出类型的网段。输出类型为字符串:
wantprefixlen取值及含义:wantprefixlen=0,无返回,如192.168.1.0
wantprefixlen=1,prefix格式,如192.168.1.0/24
wantprefixlen=2,decimalnetmask格式,如192.168.1.0/255.255.255.0
wantprefixlen=3,lastIP格式,如192.168.1.0-192.168.1.255In [52]: IP(‘192.168.1.0/24‘).strNormal(wantprefixlen=0)
Out[52]: ‘192.168.1.0‘
In [53]: IP(‘192.168.1.0/24‘).strNormal(wantprefixlen=1)
Out[53]: ‘192.168.1.0/24‘
#省略wantprefixlen
In [54]: IP(‘192.168.1.0/24‘).strNormal(0)
Out[54]: ‘192.168.1.0‘
In [55]: IP(‘192.168.1.0/24‘).strNormal(1)
Out[55]: ‘192.168.1.0/24‘
In [56]: IP(‘192.168.1.0/24‘).strNormal(2)
Out[56]: ‘192.168.1.0/255.255.255.0‘
In [57]: IP(‘192.168.1.0/24‘).strNormal(3)
Out[57]: ‘192.168.1.0-192.168.1.255‘
2、多网络计算方法
IPy支持类似于数值型数据的比较,以帮助IP对象进行比较In [67]: IP(‘10.0.0.0/24‘) > IP(‘12.0.0.0/24‘)
Out[67]: False
In [68]: IP(‘10.0.0.0/24‘)
Out[68]: True
判断IP地址和网段是否包含于另一个网段中:In [69]: ‘192.168.1.100‘ in IP(‘192.168.1.0/24‘)
Out[69]: True
In [70]: ‘192.168.2.100‘ in IP(‘192.168.1.0/24‘)
Out[70]: False
In [71]: ‘192.168.1.0/24‘ in IP(‘192.168.0.0/16‘)
Out[71]: True
判断两个网段是否存在重叠,采用IPy提供的overlaps方法:In [74]: IP(‘192.168.0.0/23‘).overlaps(‘192.168.1.0/24‘)
Out[74]: 1 #返回1代表存在重叠
In [75]: IP(‘192.168.1.0/24‘).overlaps(‘192.168.2.0‘)
Out[75]: 0#返回0代表不存在重叠
实例:根据输入的IP或子网返回网络、掩码、广播、反向解析、子网数、IP类型等信息:[[email protected] pkg1]# vim testip.py#!/usr/bin/python
#coding:utf-8
#
from IPy import IP
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
ip_test = raw_input(‘请输入IP地址或网段地址:‘)
ips = IP(ip_test)
if len(ips) > 1:
print (‘网络地址:%s‘ % ips.net())
print (‘掩码:%s‘ % ips.netmask())
print (‘网络广播地址:%s‘ % ips.broadcast())
print (‘地址反向解析:%s‘ % ips.reverseNames())
print (‘网络子网数:%s‘ % len(ips))
else:
print (‘IP反向解析 %s‘ % ips.reverseNames())
print (‘此IP地址转换成十六进制: %s‘ % ips.strHex())
print (‘此IP地址转换成二进制: %s‘ % ips.strBin())
print (‘此IP地址类型: %s‘ % ips.iptype())
执行结果:[[email protected] pkg1]# python testip.py
请输入IP地址或网段地址:192.168.1.0/24
网络地址:192.168.1.0
掩码:255.255.255.0
网络广播地址:192.168.1.255
地址反向解析:[‘1.168.192.in-addr.arpa.‘]
网络子网数:256
此IP地址转换成十六进制: 0xc0a80100
此IP地址转换成二进制: 11000000101010000000000100000000
此IP地址类型: PRIVATE
[[email protected] pkg1]# python testip.py
请输入IP地址或网段地址:192.168.1.1
IP反向解析 [‘1.1.168.192.in-addr.arpa.‘]
此IP地址转换成十六进制: 0xc0a80101
此IP地址转换成二进制: 11000000101010000000000100000001
此IP地址类型: PRIVATE
原文:http://kurolz.blog.51cto.com/11433546/1935068
python ip地址处理_Python学习笔记-IP地址处理模块Ipy相关推荐
- python ipaddress模块_Python学习笔记-IP地址处理模块Ipy
IP地址处理模块Ipy IPy模块可以很好的辅助我们高效完成IP的规划工作. 安装IPy模块[root@kurol ~]# python36 -m easy_install -i http://pyp ...
- python 异步加载_Python学习笔记4——爬取异步加载数据
一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...
- python查看方法作用_python学习笔记1,新手小白也能看得懂
这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...
- python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度
python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib: matplotlib 1.11 numpy: nump ...
- python的基本数据结构_Python学习笔记——基本数据结构
列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...
- python的基本数据结构_python学习笔记-基本数据结构
Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...
- python创建实例属性_Python学习笔记__6.5章 实例属性和类属性
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 1.1.实例绑定属性 class Student(object): def __init__(self, name): self.name ...
- python __name__怎么使用_python学习笔记26(python中__name__的使用)
在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...
- python编辑器文字放大_python学习笔记000
写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...
- python的continue用法_Python学习笔记之Break和Continue用法分析
本文实例讲述了Python学习笔记之Break和Continue用法.分享给大家供大家参考,具体如下: Python 中的Break 和 Continue break:控制何时循环应该结束 conti ...
最新文章
- 为什么await()后会执行lock.unlock,await()时不就释放锁了吗
- php 选择路径上传方法,PHP上传文件时自动分配路径的方法,_PHP教程
- python绘制三维散点图-python 画三维图像 曲面图和散点图的示例
- UITableView 学习笔记
- 随着计算机网络的广泛应用,【网络技术论文】计算机网络技术的广泛应用探析(共3558字)...
- 独家专访Mockplus CEO老布,原型设计领域的弄潮儿
- Floyd —Warshall(最短路及其他用法详解)
- .NET 开源免费图表组件库,Winform,WPF 通用
- python皮卡丘编程代码_再接再厉,用python编程13行代码解方程组(纯字符)
- python gifmaze_Windows平台python验证码识别
- 漫话:为什么键盘以QWER排列,而不是ABCD?
- crm客户管理系统源码_公司crm客户关系管理系统的功能
- Python3 Tkinter 之 (1) 主窗口框架
- android 背景逐渐变暗,UI:使View背景逐渐变暗的方法
- 最大似然估计MLE和最大后验概率MAP
- vue中引入高德地图获取坐标
- OpenRefine 开启远程访问模式
- 图像的灰度化、二值化
- Base64编码的图片在网页中的显示问题的解决
- 如何使用Veeam One默认安装出来的Sql Server数据库
热门文章
- yolov3/yolov4/yolov5/yolov6/yolov7/lite/fastdet/efficientdet各系列模型开发、项目交付、组合改造创新之—桥梁基建隧道裂痕裂缝检测实战
- 魔兽地图服务器修改,如何修改魔兽地图(傻瓜版)
- C语言 植物大战僵尸修改阳光值 代码实现
- 将Spring Boot应用程序迁移到Java 9-模块
- Babylon.js 第28章 多面体
- Intellij IDEA 一些让人爱不释手的小技巧
- Base64加解密__完整版有解释
- 01 JavaScript的前世今生
- 俄罗斯方块是java_俄罗斯方块(java版)
- Unitek的USB3.0 TF卡读卡器