1、安装

pip install IPy

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

>>> IP('10.0.0.1').version()
4
>>> IP('::1').version()
6
>>> ip=IP('192.168.0.0/16')
>>> print ip.len()
65536
>>> for x in ip:
...     print x
192.168.36.158
192.168.36.159
192.168.36.160
192.168.36.161
192.168.36.162
192.168.36.163
192.168.36.164
192.168.36.165
192.168.36.166
192.168.36.167
192.168.36.168
192.168.36.169
192.168.36.170
192.168.36.171
192.168.36.172
192.168.36.173
192.168.36.174
192.168.36.175
192.168.36.176

3、常见用法

>>> ip = IP('192.168.10.20')
>>> ip.reverseNames()
['20.10.168.192.in-addr.arpa.']
>>> ip.iptype()
'PRIVATE'
>>> IP('8.8.8.8').iptype()
'PUBLIC'
>>> IP('8.8.8.8').int()
134744072
>>> IP('8.8.8.8').strHex()
'0x8080808'
>>> IP('8.8.8.8').strBin()
'00001000000010000000100000001000
>>> print(IP('0x8080808'))
8.8.8.8
>>> print(IP('192.168.1.0').make_net('255.255.255.0'))
192.168.1.0/24
>>> print(IP('192.168.1.0/255.255.255.0',make_net=True))
192.168.1.0/24
>>> print(IP('192.168.1.0-192.168.1.255',make_net=True))
192.168.1.0/24
>>> IP('192.168.1.0/24').strNormal(0)
'192.168.1.0'
>>> IP('192.168.1.0/24').strNormal(1)
'192.168.1.0/24'
>>> IP('192.168.1.0/24').strNormal(2)
'192.168.1.0/255.255.255.0'
>>> IP('192.168.1.0/24').strNormal(3)
'192.168.1.0-192.168.1.255'
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.2554

4、多网络计算方法

1)IP比较
>>> IP('10.9.1.0/24') < IP('10.9.2.0/24')
True
2)IP地址和网络是否包含于另一个网段中
>>> IP('10.9.1.0/24') < IP('10.9.2.0/24')
True
>>> '192.168.2.100' in IP('192.168.2.0/24')
True
>>> '192.168.1.0/24' in IP('192.168.0.0/24')
False
>>> '192.168.1.0/24' in IP('192.168.0.0/16')
True
3)判断网络是否存在重叠
>>> IP('192.168.0.0/23').overlaps('192.168.1.0/24')
1  #返回1代表存在重叠
>>> IP('192.168.1.0/24').overlaps('192.168.2.0/24')
0 #返回0代表不存在重叠

5、IPy模块使用示例:

#!/bin/python
# _*_ coding:utf-8 _*_
from IPy import IPip_s = raw_input("please input an IP or net-range:")
ips = IP(ip_s)
if len(ips) > 1:print('net:%s' % ips.net()) #输出网络地址print('netmask:%s' % ips.netmask()) #输出网络掩码地址print('broadcast:%s' % ips.broadcast())#输出网络广播地址print('reverse address:%s' % ips.reverseNames()[0]) #输出地址反向解析print('subnet:%s' % len(ips))
else:print('reverse address:%s' % ips.reverseNames()[0]) #输出IP反向地址解析print('hexadecimal:%s' % ips.strHex()) #输出十六进制地址
print('binary ip:%s' % ips.strBin()) #输出二进制地址
print('iptype:%s' % ips.iptype()) #输出地址类型

官方参考文档:http://github.com/haypo/python-ipy

python中IP处理模块IPy相关推荐

  1. 一文掌握使用Python的IP处理模块IPy

    IPy是Python支持IP的各种操作第三方模块,需要pip安装后才能使用,安装方法: pip install IPy IPy支持的方法和属性: >>> dir(IPy) ['INT ...

  2. python ip,Python中IP地址处理IPy模块的使用

    IPy模块可以很好的帮助我们完成IP的计算和规划.现在网上也有很多IP地址计算的网站,这个模块实现的功能和他们也差不多. 安装 先下载源码,地址:https://pypi.python.org/pyp ...

  3. IPy——Python中ip地址处理模块

    在IP地址规划中,涉及到计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP类型等.别担心,Ipy模块拯救你.Ipy模块可以很好的辅助我们高效的完成IP的规划工作. 思路:防止重复制造轮子, ...

  4. python中的log模块笔记

    日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日志输出中添 ...

  5. cx_oracle主备服务器,怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作

    怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作 发布时间:2021-03-17 16:32:34 来源:亿速云 阅读:67 作者:Leah 本篇文章为大家展示了怎么在Pyt ...

  6. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  7. 介绍Python中的__future__模块

    这篇文章主要介绍了介绍Python中的__future__模块,__future__模块使得在Python2.x的版本下能够兼容更多的Python3.x的特性,需要的朋友可以参考下 Python的每个 ...

  8. python中的logging记录日志_[ Python入门教程 ] Python中日志记录模块logging使用实例...

    python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...

  9. python使用教程cmd啥意思-Python 中的cmd模块学习

    Python中的cmd模块类型提供了一个创建命令行解析器的框架.简单的来说,可以继承Cmd来创建命令行界面,然后对所有想处理的命令command执行do_command方法.默认情况下,它使用read ...

最新文章

  1. Kaggle比赛的进阶技巧和国内比赛前十套路
  2. xpath 获取当前节点的父节点,兄弟节点的方法
  3. FTP同步的另类解决办法——NetDrive
  4. ASP.net 自定义服务器控件之 GridViewControl
  5. jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
  6. WSDL2Java操作指南
  7. 高性能MySQL-3rd-(六)查询性能优化
  8. php删除文见,php如何删除文件夹
  9. 匿名类型(C# 编程指南)
  10. 编写程序,用户输入一个位以上的整数,输出其百位以上的数字。例如用户输入1234.则程序输出12.
  11. 吴恩达机器学习入门(配合吴恩达机器学习视频篇)
  12. Matlab 绘制 1931 CIE色品图 并标点
  13. Chrome、FireFox浏览器新标签页打开搜索和书签
  14. 英特尔第十代处理器为什么不支持win7_Intel最新CPU和主板不能装Win7怎么办
  15. 课堂派作业第一题(附思路)已改完!
  16. win10无限蓝屏_升级 Win10 后系统蓝屏或无限重启的解决方法之一
  17. java刻画三角形和梯形和圆形_三角形、梯形和圆形的类封装
  18. PHP中的定界符 echo
  19. 一个计算机毕业生的2012年求职之路
  20. 苹果电脑怎么关闭当前页面、打开终端、截图

热门文章

  1. 【python】hasattr()、getattr()、setattr() 函数使用详解
  2. Android几种数据存储的对比(MMKV、DataStore、SharedPreference)
  3. 独角数卡发卡网站搭建流程
  4. 09-slash_backslash
  5. 陈吉平-阿里巴巴离职DBA在35岁总结的职业生涯
  6. EXCEL多列内容合并且中间加字符串
  7. 宝塔Linux面板问题QA汇总
  8. 【超全面】机器学习中的超参优化方法总结
  9. TensorFlow实践(15)——使用tf.device方法指定节点执行设备
  10. 语雀转换发布CSDN和语雀导出图片图片无法识别处理(针对typora)