问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 使用ipy 模块处理出现错误 ValueError: IP('127.0.0.1/30...

发布网友 发布时间:2022-04-25 07:08

我来回答

4个回答

懂视网 时间:2022-05-10 20:30

本文主要讲解PythonIP地址处理模块,IPy该模块可以方便的处理IPv4和IPv6地址,下面这篇文章主要给大家介绍了关于Python自动化运维之IP地址处理模块的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧,希望能帮助到大家。

实用的IP地址处理模块IPy

在IP地址规划中,涉及到计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等

别担心,Ipy模块拯救你。Ipy模块可以很好的辅助我们高效的完成IP的规划工作。

功能:辅助我们高效的完成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

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

使用方法:

#from IPy import IP
#ip_1 = IP('192.168.1.0/24')
#print(ip_1.len()) # 
输出192.168.1.0/24网段的IP个数 #for a in ip_1: # print(a) # 输出192.168.1.0/24网段的所有IP清单

IP地址的转化:

#from IPy import IP 
#ip_2 = IP('192.168.1.1') 
#ip_2.reverseNames() # 反响解析地址格式
#ip_2.iptype() # 查看IP地址类型
#ip_2.int() # 将格式转换为整型格式
#ip_2.strHex() # 将格式转换为16进制格式
#ip_2.strBin() # 将格式转换为2进制格式 
#print(IP(0x8188808)) # 将16进制转化为IP格式

IP网段的转化:

#from IPy import IP
# 
输出192.168.1.0/24 #print(IP('192.168.1.0').make_net('255.255.255.0')) #print(IP('192.168.1.0/255.255.255.0',make_net=True)) #print(IP('192.168.1.0-192.168.1.255',make_net=True)) # 通过strNormal() 方法指定上述三种格式的输出: #print(IP('192.168.1.0/24').strNormal(0)) # 参数(wantprefixlen)为0,无返回,输出192.168.1.0 #print(IP('192.168.1.0/24').strNormal(1)) # 参数(wantprefixlen)为1,prefix格式,输出192.168.1.0/24 #print(IP('192.168.1.0/24').strNormal(2)) # 参数(wantprefixlen)为2,decimalnetmask格式,输出192.168.1.0/255.255.255.0 #print(IP('192.168.1.0/24').strNormal(3)) # 参数(wantprefixlen)为3,lastIP格式,输出192.168.1.0-192.168.1.255

多网络计算方法:

功能:比较两个网段是否存在包含、重叠等关系,比如192.168.1.0/24 和192.168.1.0/25;192.168.0.0/24 和192.168.1.0/24

使用方法:

#from IPy import IP
#IP('192.168.0.0/24')<IP('192.168.1.0/24')
# 判断IP地址和网段是否包含于另一个网段中
#'192.168.1.1' in IP('192.168.1.0/24') 
# 判断两个网段是否存在重叠,使用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/24') # 返回0,表示没有重叠

根据输入的IP地址或网段地址,返回网络地址、广播地址、地址反响解析、子网数、IP类型等信息:

#from IPy import IP 
#ip_inp=raw_input('输入IP地址或网段地址')
#ip=IP(ip_inp)
#if len(ip)>1: # 是一个网段
# print('网络地址是:%s' %ip.net())
# print('子网掩码是:%s' %ip.netmask())
# print('广播地址是:%s' %ip.broadcast())
# print('地址反向解析:%s' %ip.reverseName()[0])
# print('网络子网数为:%s' %sip.len()) 
#else: # 是一个IP地址 
# print('IP地址反向解析:%s' %ip.reverseName()[0])
#
#print('16进制地址:%s' %ip.strHex())
#print('2进制地址:%s' %ip.strBin())
#print('IP地址类型:%s' %ip.iptype())

热心网友 时间:2022-05-10 17:38

这个需要加一个参数,看了外国的文档用法如下,IPY.IP('127.0.0.1/24',make_net=1)
主要是make_net默认为0,就是标准的iP最后一位是16,32,这种才行,设置为1,就可以自己定义了。‘“'''',.()*&%##$^&!@#$%^:"<>”’

热心网友 时间:2022-05-10 18:56

我也遇到了这个问题有一些思考不知道对不对,就是这个模块你想使用的时候必须要使用网络号加上掩码的形式,不能取其中的ip地址来计算,不然会报错,例如:
>>> ip = IP('172.16.0.1/16')
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
File "/anaconda3/lib/python3.7/site-packages/IPy.py", line 260, in __init__
raise ValueError("%s has invalid prefix length (%s)" % (repr(self), self._prefixlen))
ValueError: IP('172.16.0.1/16') has invalid prefix length (16)
这样就会报错,如果使用下面:
>>> ip = IP('172.16.0.0/16')
>>>
就不会报错,所以我是这么想的,不知道对不堵

热心网友 时间:2022-05-10 20:31

IPy.IP('127.0.0.1/30')

其中127.0.0.1为ip地址,30是子网掩码

127.0.0.1/30这个地址计算处理是错误的,具体可以参考

http://ke.baidu.com/view/878.htm
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你家的水龙头起泡器该换了 如何打开水龙头起泡器 网上卖门锁,安装如何解决 广告装潢需要哪些设备 广告制作需要哪些材料 开锦旗招牌广告制做店须要什么 广告店需要哪些耗材 长安之星发动机水泵要坏之前声音怎么判断 家有孕妇咋调理:280天贴心呵护生健康宝贝图书信息 哪些是适合孕妇看的书 python 出现ValueError: invalid literal for int() with base 10... 化学植筋和化学螺栓的区别在哪谢谢首先感谢,但等于 python出错 ValueError: matrix must be 2-dimensional 植筋胶用于钢筋和化学锚栓锚固的加固原理是什么? 初学python,看不懂报的错误 ValueError: only 2 non-keyword arguments a... 植筋胶与化学锚栓的区别在哪 【python】ValueError: could not convert string to float: 锚栓和化学植筋能抗剪吗? ValueError: index must be monotonic increasing or decreasing 采用化学锚栓植筋钢筋,外露部分是多少有什么规定 python爬虫报错ValueError: invalid literal for int() with base 10... 植筋和化学锚栓?搞不懂,搞不懂,大神解释 Python中ValueError: invalid literal for int() with base 10... 化学锚栓和化学植筋是什么?性价比哪家更高? 新手求助!python3.5错误ValueError: invalid literal for int() with... 采用化学锚栓植筋钢筋,外露部分是多少有什么规定? ValueError: attempted relative import beyond top-level package 新手的python小程序,老是出现ValueError: could not convert string to float: 求教了,大婶们 化学锚栓和植筋哪个好 【python】ValueError: need more than 0 values to unpack Python ValueError: invalid literal for int() with base 10: &#39;42.9... 使用numpy.loadtxt()总是报错ValueError: could not convert string to... Python ValueError: zero-size array to reduction operation maximum which has no identity求帮忙,谢谢 与谎有关的词语 运用python编程实现摄氏度与华氏温度之间的转换 注射式植筋胶和化学锚栓的区别?和相同点都有哪些? 承诺与谎言的区别是什么? 诚实与谎言的话语金句 化学锚栓是不是要配药剂用?可以配植筋胶用吗? 真相与谎言之间,该如何取舍? 化学锚栓和植筋有什么区别 谣言与谎言有么区别? 诚实与谎言 M16的化学植筋打多大直径的植筋孔 欺骗与谎言之间区别是什么?他们之间的关系又是什么?求大神帮助 怎样辨别真实与谎言??? 有谁来说一个真实与谎言的故事? 欺骗与谎言有什么区别? 欺骗与谎言有什么区别 真相与谎言,你选择残酷的真相还是美丽的谎言?