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脚本来获取mp3文件tag信息的教程
May 04 Python
win7上python2.7连接mysql数据库的方法
Jan 14 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
Python彻底删除文件夹及其子文件方式
Dec 23 Python
Python3爬虫发送请求的知识点实例
Jul 30 Python
Python爬虫开发与项目实战
Dec 16 Python
python操作xlsx格式文件并读取
Jun 02 Python
Python PIL按比例裁剪图片
May 11 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
PHP的可变变量名的使用方法分享
2012/02/05 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
ThinkPHP模板输出display用法分析
2014/11/26 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
基于python实现对文件进行切分行
2020/04/26 Python
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
银行实习生的自我评价
2014/01/13 职场文书
宣传普通话标语
2014/06/27 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
学风建设演讲稿
2014/09/12 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android