1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*
  3. # Created by YangYongming at 2018/09/17 20:22
  4. # FileName: ipy.py
  5.  
  6. import IPy
  7.  
  8. ip1 = IPy.IP("220.181.199.13")
  9. ip2 = IPy.IP("220.181.199.0/24")
  10. ip3 = IPy.IP("220.181.199.0/255.255.255.0")
  11.  
  12. # IP 及 网段的基本处理
  13. print(ip3.len()) # 计算IP地址个数:256
  14. print(ip1.version()) # 输出IP地址的版本:4
  15. print(ip2.netmask()) # 输出掩码:255.255.255.0
  16. print(ip1.iptype()) # 输出IP地址是公网IP还是私网IP:PUBLIC
  17. print(ip1.reverseName()) # 反向解析IP地址格式:13.199.181.220.in-addr.arpa.
  18. print(ip1.reverseNames()) # 反向解析IP地址格式,返回列表格式:['13.199.181.220.in-addr.arpa.']
  19. print(ip2.broadcast()) # 输出一个网段的广播地址:220.181.199.255
  20. # for i in ip2: # 打印输出IP地址
  21. # print(i)
  22.  
  23. # IP地址进制转换
  24. print(ip1.strBin()) # 转换为二进制:11011100101101010110001100001101
  25. print(ip1.strHex()) # 转换为十六进制:0xdcb5630d
  26. print(ip1.int()) # 转换为十进制:3702874893
  27.  
  28. # 通过wantprefixlen参数“0,1,2,3,4 ”转换成自己想要的地址格式,字符串格式的
  29. print(ip2.strNormal(0)) # 220.181.199.0
  30. print(ip2.strNormal(1)) # 220.181.199.0/24
  31. print(ip2.strNormal(2)) # 220.181.199.0/255.255.255.0
  32. print(ip2.strNormal(3)) # 220.181.199.0-220.181.199.255
  33.  
  34. # 根据IP和掩码 生成 *.*.*.*/* 的格式
  35. print(ip1.make_net('255.255.255.0')) # 获取220.181.199.13与掩码255.255.255.0计算,CDR格式:220.181.199.0/24
  36. print(IPy.IP('220.181.199.13/255.255.255.0', make_net=True)) # 将220.181.199.13/255.255.255.0地址格式转换为220.181.199.0/24
  37. print(IPy.IP('220.181.199.0-220.181.199.255', make_net=True)) # 将220.181.199.0-220.181.199.255地址段转换为220.181.199.0/24格式
  38.  
  39. # 判断IP地址是否在一个网段中
  40. print("192.168.1.22" in IPy.IP("192.168.1.0/24")) #: True
  41. print("192.168.2.22" in IPy.IP("192.168.1.0/24")) #: False
  42.  
  43. # 比较两个网段的大小
  44. print(IPy.IP("192.168.3.0/24") > IPy.IP("192.168.1.0/24")) #: True
  45.  
  46. # 判断两个网段是否有重叠
  47. print(IPy.IP("192.168.3.0/24").overlaps("192.168.4.0/24")) # :0 表示不存在重叠
  48. print(IPy.IP("192.168.2.0/23").overlaps("192.168.3.0/24")) # :1 表示存在重叠
  49.  
  50. # IP地址排序
  51. L = ['1.4.5.32', '4.5.3.2', '1.2.3.4', '6.1.1.1']
  52. L1 = sorted(L, key=lambda x: IPy.IP(x).int())
  53. for i in L1:
  54. print(i)

Python IPy模块的更多相关文章

  1. Python 输入IP地址及掩码告诉你该网段包含的全部地址(IPy模块练习)

    IPy模块原本使用时需要输入正确的网络位和掩码,我利用处理报错的机制实现了输入任意IP地址和掩码均可正确输出结果的小程序. #!/usr/bin/env python # -*- coding: ut ...

  2. IPy模块--IP地址处理

    Python之实用的IP地址处理模块IPy 实用的IP地址处理模块IPy 在IP地址规划中,涉及到计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP类型等 别担心,Ipy模块拯救你.Ipy ...

  3. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  4. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

  5. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  6. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  7. python基础-模块

    一.模块介绍                                                                                              ...

  8. python 安装模块

    python安装模块的方法很多,在此仅介绍一种,不需要安装其他附带的pip等,python安装完之后,配置环境变量,我由于中英文分号原因,环境变量始终没能配置成功汗. 1:下载模块的压缩文件解压到任意 ...

  9. python Queue模块

    先看一个很简单的例子 #coding:utf8 import Queue #queue是队列的意思 q=Queue.Queue(maxsize=10) #创建一个queue对象 for i in ra ...

随机推荐

  1. BUAAMOOC项目终审报告

    工作总结 我们是歪果仁带你灰开发团队.我们开发的项目是北航学堂(MOOC)的android客户端:BUAAMOOC. 目前我们完成了主要功能,包括UI设计,视频播放,视频下载,学习进度,个人信息等功能 ...

  2. 【实践报告】Linux实践四

    Linux内核分析 实践四——ELF文件格式分析 一.概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文 ...

  3. Zookeeper 3.4.8分布式安装

    1.机器信息 五台centos 64位机器 2.集群规划 Server Name Hadoop Cluster Zookeeper   Ensemble HBase Cluster Hadoop01 ...

  4. BUAA软工个人作业Week3-案例分析

    一. 调研评测 评测项目:为了联系移动和PC版,我同时下载了必应词典的Android版本和UWP版本,选择UWP的原因是想看看微软推广的UWP在微软自己的应用上的效果.当然主要是对安卓的测评(UWP用 ...

  5. 使用composer遇到的问题及解决方法

    可以尝试利用composer下载Yii框架,编辑composer.json文件: { "require":{ "yiisoft/yii2":"~2.0 ...

  6. Python 2和Python 3的编码问题

    在Python2中,字符串无法完全地支持国际字符集和Unicode编码.为了解决这种限制,Python2对Unicode数据使用了单独的字符串类型.要输入Unicode字符串字面量,要在第一个引号前加 ...

  7. 监控系统 & monitoring & DevOps

    监控系统 & monitoring & DevOps https://github.com/topics/monitoring https://github.com/marketpla ...

  8. HUD 1024 Max Sum Plus Plus (滚动数组)

    题意:从一个序列中选出分成不交叉的m段 的最大和 解析 : 题目中 1 <= n <=1000000 所以二维数组是不能用了  所以 要想到简化为一维 dp[i][j]表示以i结尾的前i个 ...

  9. MT【40】一道联赛二试题

    让我通过这道题来演示如何利用切比雪夫多项式的内功心法: 评:如此大道至简,当年为之叫绝的精彩的做法

  10. 【POI每日题解 #5】 DWU-Double-row

    题目链接 [POI2005]DWU-Double-row wwwww 之前写了半小时 一卡机 没啦QAQ 简单说一下吧 [吐血ing 这道题长得好二分图啊 所以本能地连边 一种是A边 连可交换的数对 ...