Python自动化运维之IP地址处理模块详解


Posted in Python onDecember 10, 2017

实用的IP地址处理模块IPy

在IP地址规划中,涉及到计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等

别担心,Ipy模块拯救你。Ipy模块可以很好的辅助我们高效的完成IP的规划工作。

功能:辅助我们高效的完成IP的规划工作

安装:

wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate
tar -zxvf Ipy-0.81.tar.gz
cd IPy-0.81
python setup.py install

IP地址、网段的基本处理:

使用方法:

#from IPy import IP
#ip_1 = IP('192.168.1.0/24')
#print(ip_1.len()) # 输出192.168.1.0/24网段的IP个数
#for a in ip_1: 
# print(a) # 输出192.168.1.0/24网段的所有IP清单

IP地址的转化:

#from IPy import IP 
#ip_2 = IP('192.168.1.1') 
#ip_2.reverseNames() # 反响解析地址格式
#ip_2.iptype() # 查看IP地址类型
#ip_2.int() # 将格式转换为整型格式
#ip_2.strHex() # 将格式转换为16进制格式
#ip_2.strBin() # 将格式转换为2进制格式 
#print(IP(0x8188808)) # 将16进制转化为IP格式

IP网段的转化:

#from IPy import IP
# 输出192.168.1.0/24 
#print(IP('192.168.1.0').make_net('255.255.255.0')) 
#print(IP('192.168.1.0/255.255.255.0',make_net=True)) 
#print(IP('192.168.1.0-192.168.1.255',make_net=True)) 
# 通过strNormal() 方法指定上述三种格式的输出: 
#print(IP('192.168.1.0/24').strNormal(0)) # 参数(wantprefixlen)为0,无返回,输出192.168.1.0
#print(IP('192.168.1.0/24').strNormal(1)) # 参数(wantprefixlen)为1,prefix格式,输出192.168.1.0/24 
#print(IP('192.168.1.0/24').strNormal(2)) # 参数(wantprefixlen)为2,decimalnetmask格式,输出192.168.1.0/255.255.255.0 
#print(IP('192.168.1.0/24').strNormal(3)) # 参数(wantprefixlen)为3,lastIP格式,输出192.168.1.0-192.168.1.255

多网络计算方法:

功能:比较两个网段是否存在包含、重叠等关系,比如192.168.1.0/24 和192.168.1.0/25;192.168.0.0/24 和192.168.1.0/24

使用方法:

#from IPy import IP
#IP('192.168.0.0/24')<IP('192.168.1.0/24')
# 判断IP地址和网段是否包含于另一个网段中
#'192.168.1.1' in IP('192.168.1.0/24') 
# 判断两个网段是否存在重叠,使用overlaps()方法 
#IP('192.168.0.0/23').overlaps('192.168.1.0/24') # 返回1,表示重叠 
#IP('192.168.1.0/24').overlaps('192.168.2.0/24') # 返回0,表示没有重叠

根据输入的IP地址或网段地址,返回网络地址、广播地址、地址反响解析、子网数、IP类型等信息:

#from IPy import IP 
#ip_inp=raw_input('输入IP地址或网段地址')
#ip=IP(ip_inp)
#if len(ip)>1: # 是一个网段
# print('网络地址是:%s' %ip.net())
# print('子网掩码是:%s' %ip.netmask())
# print('广播地址是:%s' %ip.broadcast())
# print('地址反向解析:%s' %ip.reverseName()[0])
# print('网络子网数为:%s' %sip.len()) 
#else: # 是一个IP地址 
# print('IP地址反向解析:%s' %ip.reverseName()[0])
#
#print('16进制地址:%s' %ip.strHex())
#print('2进制地址:%s' %ip.strBin())
#print('IP地址类型:%s' %ip.iptype())

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
理解Python中的With语句
Feb 02 Python
Python实现的rsa加密算法详解
Jan 24 Python
python实现list由于numpy array的转换
Apr 04 Python
python实现关闭第三方窗口的方法
Jun 28 Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 Python
Python3+Appium实现多台移动设备操作的方法
Jul 05 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
编写python代码实现简单抽奖器
Oct 20 Python
如何在pycharm中安装第三方包
Oct 27 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
Jun 10 Python
python利用rsa库做公钥解密的方法教程
Dec 10 #Python
Python跨文件全局变量的实现方法示例
Dec 10 #Python
git进行版本控制心得详谈
Dec 10 #Python
Python内置模块turtle绘图详解
Dec 09 #Python
Python程序退出方式小结
Dec 09 #Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 #Python
Python爬取附近餐馆信息代码示例
Dec 09 #Python
You might like
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
python基于右递归解决八皇后问题的方法
2015/05/25 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python 基于wx实现音乐播放
2020/11/24 Python
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
恒华伟业笔试面试题
2015/02/26 面试题
大学校庆邀请函
2014/01/11 职场文书
中文专业求职信
2014/06/20 职场文书
建设工程授权委托书
2014/09/22 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
医学会议开幕词
2016/03/03 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS