设为首页 收藏本站
查看: 1126|回复: 0

[经验分享] python学习-IPy模块

[复制链接]

尚未签到

发表于 2018-8-7 13:26:13 | 显示全部楼层 |阅读模式
#! /env python3  
#coding=utf-8
  
#使用pip install IPy,最新版本为0.83
  

  
'''
  
IP地址、网段的基本处理
  
'''
  
import IPy
  

  
from IPy import IP #调用IP
  
ip_v4 = IP('192.168.1.0/24').version() #判断ipv4地址段的类型
  
ip_v6 = IP('::1').version() #判断ipv6地址段的类型
  
print (ip_v4)
  
print (ip_v6)
  
ip = IP('192.168.1.0/24') #输入192.168.1.0/24网段
  
print (ip.len()) #192.168.1.0/24的网段的IP个数
  
for x in ip:
  
    print (x)  #输出192.168.1.0/24网段所有的ip清单
  
''''
  
解析名称、IP类型、IP转换等
  
'''
  
ip_adr = IP('192.168.1.20')
  
print (ip_adr.reverseNames()) #反向解析地址格式
  
ip_adr_type = IP('8.8.8.8').iptype() #判断8.8.8.8为公网地址还是私网地址
  
print (ip_adr_type)
  
ip_adr_int = IP('8.8.8.8').int() #将地址转换为整数形式
  
ip_adr_hex = IP('8.8.8.8').strHex() #转换为16进制格式
  
ip_adr_bin = IP('8.8.8.8').strBin() #转换为二进制格式
  
print (ip_adr_int)
  
print (ip_adr_hex)
  
print (ip_adr_bin)
  
'''
  
网络地址转换,例如根据IP与掩码生产网段格式
  
'''
  
ip_net = IP('192.168.1.0')
  
print (ip_net.make_net('255.255.255.0')) #获取192.168.1.0与掩码255.255.255.0计算,CDR格式,192.168.1.0/24
  
print (IP('192.168.1.0/255.255.255.0',make_net=True)) #将192.168.1.0/255.255.255.0地址格式转换为192.168.1.0/24
  
print (IP('192.168.1.0-192.168.1.255',make_net=True)) #将192.168.1.0-192.168.1.255地址段转换为192.168.1.0/24格式
  

  
'''
  
通过strNormal方法指定不同wanprefixlen参数以制定不同的输出类型网络。输出类型为字符串
  
'''
  
print ((IP('192.168.1.0/24')).strNormal(0)) #wanltprefixlen=0,无返回,例如192.168.1.0
  
print ((IP('192.168.1.0/24')).strNormal(1)) #wanltprefixlen=1,prefix格式,如192.168.1.0/24
  
print ((IP('192.168.1.0/24')).strNormal(2)) #wanltprefixlen=2,decimalnetmask格式,如192.168.1.0/255.255.255.0;
  
print ((IP('192.168.1.0/24')).strNormal(3)) #wanltprefixlen=3,lastIP格式,如192.168.1.0-192.168.1.255
  

  
'''
  
多网络计算方法
  
'''
  
IP('10.0.0.0/24') < IP('12.0.0.0/24')#判断10.0.0.0/24网段小于12.0.0.0/24,输出结果为TRUE
  
IP('192.168.1.100') in IP('192.168.1.0/24')#判断192.168.1.100地址是否在192.168.1.0/24网段中,输出结果为TRUE
  

  
'''
  
判断两个网段是否存在存在重叠,采用IPy提供的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')      #返回值为0,代表为不存在重叠

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-548280-1-1.html 上篇帖子: python_paramiko 远程调用命令 下篇帖子: python编写mysql类实现mysql的操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表