ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python的IPy模块

2021-02-27 21:03:39  阅读:184  来源: 互联网

标签:24 网段 Python IP 192.168 模块 ip IPy


Python的IPy模块

IPy模块介绍

IPy这个强大的Python第三方包主要提供了包括网段、网络掩码、广播地址、子网数、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  # 安装

IPy模块使用

调用模块

使用IPy模块时,需要先调用模块

from IPy import IP

定义网段

ip = IP('10.0.0.0/24')

查询网段的IP数量

使用len()函数

ip.len()
256
for i in ip.len():  # 遍历网段IP
	print(i)

IP地址转换

使用reverseName()函数对IP进行反向解析

ip1 = IP('192.168.4.111')
ip1.reverseName()
'111.4.168.192.in-addr.arp

查看IP类型

使用iptype()函数查看IP类型

ip1 = IP('192.168.4.111')
ip1.iptype()
PRIVATE

将IP格式转换为其他类型格式

ip1 = IP('192.168.4.111')
ip1.int()  # int()函数
3232236655  

ip1.strHex()  # 16进制
'0xc0a8046f'

ip1.strBin()  # 2进制
'11000000101010000000010001101111'

print(IP(0xc0a80101))  # 将16进制转化为IP格式
192.168.1.1

判断IP的网段

ip = IP('192.168.4.159')
书写形式一:
print(ip.make_net(26))
192.168.4.128/26  
书写形式二:
print(ip.make_net(255.255.225.192))
192.168.4.128/26  
print(IP('192.168.4.0-192.168.4.255',make_net=True))  #这个网段必须是子网掩码是255.255.225.0的网段
192.168.4.0/24

网段的不同输出格式

strNormal()输出IP的网段的不同格式

参数:

0:输出网段的网络标识

1:以prefix的形式输出网段

2:以decimalnetmask的格式输出网段

3:以lastIP的格式输出网段

print(IP('192.168.1.0/24').strNormal(0))  # 输出网段的网络标识
192.168.1.0

print(IP('192.168.2.0/26').strNormal(1))  # 输出网段
192.168.2.0/6  # 输出prefix格式网段
print(IP('192.168.3.0/24').strNormal(2))
192.168.2.0/255.255.255.192  # 输出decimalnetmask格式网段

print(IP('192.168.4.0/24').strNormal(3))
192.168.2.0-192.168.2.63  # 输出lastIP格式

判断两个网段是否存在包含或重叠等关系

判断网段大小

比较的依据:比较的是网络位,从左到右比较数值大小,能够区分开即比较停止,非网络位必须是0

IP("10.0.0.0/24") < IP("12.0.0.0/16")  # True 12.0.0.0/16网段大
IP("13.0.0.0/8") < IP("12.5.5.0/26")  # False 13.0.0.0/8网段大

判断IP地址和网段是否包含于另一个网段中

**in:**判断iIP或网段是否在另一个网段中国

"192.168.1.55" in IP("192.168.1.0/24")  # True
IP("192.168.4.64/26") in IP("192.168.4.0/24")  # True

判断两个网段是否有重叠

IP("192.168.4.0/26").overlaps("192.168.4.0/24")  # 1 1表示两个网段有重叠部分
IP("10.0.0.0/26").overlaps("10.0.2.0/24")  # 0 0表示两个网段没有重叠部分

输出网段的网络地址、子网掩码及广播地址

ip = IP("192.168.6.0/24")
ip.net()  # IP('192.168.6.0') 
ip.netmask()  # IP('255.255.255.0')
ip.broadcast()  # IP('192.168.6.255')

标签:24,网段,Python,IP,192.168,模块,ip,IPy
来源: https://blog.csdn.net/weixin_46686835/article/details/114191523

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有