Python的IPy模块
2023-09-27 14:29:10 时间
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')
相关文章
- python爬虫请求库之selenium模块
- Python常用函数:zipfile模块【压缩和解压缩】
- Python黑魔法之描述符
- Python_collections模块
- Selenium + PhantomJS + python 简单实现爬虫的功能
- Python Web学习笔记之Python多线程和多进程、协程入门
- 致Python初学者:Anaconda入门使用指南
- Python 模块引入,脚本执行
- python-selenium 并发执行用例的问题
- python的xpinyin模块:汉字转拼音
- 【Python】使用 Matplotlib 绘制“三角函数”图像 || plt.subplot(2, 2, 3) 将图像分区 || plt.plot(x, y, “r-v“) 中第三个参数说明
- 【Python】二重循环中的 break 和 continue
- Python OS 模块
- Python time 模块
- 如何在 CentOS 7 上安装 Python 3
- 第12.4节 Python伪随机数数生成器random模块导览
- Python正则运算符优先级re.findall('(.)*',"abc")、re.findall('(.*)',"abc")、re.findall('(.?)*',"abc")的执行结果的影响分析
- Python中import模块时报SyntaxError: (unicode error)'utf-8' codec can't decode 错误的解决办法
- Python函数的关键字参数
- 【python正则表达式 实战示例】求数组全部相邻数据
- python-包和模块
- python多进程程序之间交换数据的两种办法--Queue和Pipe
- python flask框架 蓝图的使用
- python RSA模块加密和解密