IP地址处理模块IPy

IP地址处理模块IPy

计算IP地址,包括网段、网络掩码、广播地址、子网数、IP类型等

1、IP地址处理

1、判断地址类型是ipv4还是ipv6

import IPy
l1=IPy.IP('192.168.1.5').version()
print(l1)#4,IPv4地址类型
l1=IPy.IP('::1').version()
print(l1)#6,IPv6地址类型

2、判断网络ip地址个数,输出结果

import IPy
l1=IPy.IP('192.168.1.0/24')
print(len(l1))#输出ip网段的个数,256
for i in l1:#使用循环列出当前网段的所有IP
    print(i)

3、判断ip类型,公有、私有、环回等

i公有、私有,本地回环地址等等

import IPy
l1=IPy.IP('192.168.1.1').iptype()
print(l1)#PRIVATE
l1=IPy.IP('100.100.100.100').iptype()
print(l1)#CARRIER_GRADE_NAT
l1=IPy.IP('11.11.11.11').iptype()
print(l1)#PUBLIC
l1=IPy.IP('::1').iptype()
print(l1)#LOOPBACK

4、反向地址解析

import IPy
l1=IPy.IP('192.168.1.1').reverseNames()#反向地址解析
print(l1)
#['1.1.168.192.in-addr.arpa.']

5、ip地址类型转换

import IPy
l1=IPy.IP('192.168.1.1').int()#转换成整形
print(l1)#3232235777
l1=IPy.IP('192.168.1.1').strHex()#十进制转换成十六进制
print(l1)#0xc0a80101
l1=IPy.IP('192.168.1.1').strBin()#十进制转换成二进制
print(l1)#11000000101010000000000100000001
l1=IPy.IP('0xc0a80101')#十六进制转化十进制
print(l1)#192.168.1.1

6、判断ip地址所在网段

根据ip与掩码判断网段

import IPy
l1=IPy.IP('192.168.1.56').make_net(24)
print(l1)#192.168.1.0/24
l1=IPy.IP('192.168.1.1').make_net('255.255.255.0')
print(l1)#192.168.1.0/24
l1=IPy.IP('192.168.1.56/24',make_net=True)
print(l1)#192.168.1.0/24
l1=IPy.IP('192.168.1.56/255.255.255.0',make_net=True)
print(l1)#192.168.1.0/24
l1=IPy.IP('192.168.1.0-192.168.1.255',make_net=True)
print(l1)#192.168.1.0/24

7、strNormal指定输出不同格式类型网段

import IPy
l1=IPy.IP('192.168.1.0/24').strNormal(0)
print(l1)#192.168.1.0
l1=IPy.IP('192.168.1.0/24').strNormal(1)
print(l1)#192.168.1.0/24,默认不写就是它
l1=IPy.IP('192.168.1.0/24').strNormal(2)
print(l1)#192.168.1.0/255.255.255.0
l1=IPy.IP('192.168.1.0/24').strNormal(3)
print(l1)#192.168.1.0-192.168.1.255

2、网络计算

判断两个网段的关系:包含等

1、判断ip是否在某个网段

1、判断ip地址是否在某网段中

import IPy
l1=IPy.IP('192.168.1.1')
l2=IPy.IP('192.168.1.0/24')
print(l1 in l2)#True

2、判断网段是否在某网段中

import IPy
l1=IPy.IP('192.168.1.0/24')
l2=IPy.IP('192.168.0.0/22')
print(l1 in l2)#True

2、判断重叠关系

import IPy
l1=IPy.IP('192.168.1.0/24').overlaps('192.168.1.0/25')
print(l1)#1,有重叠部分
l1=IPy.IP('192.168.2.0/24').overlaps('192.168.1.0/25')
print(l1)#0,没有重叠部分

3、综合使用

import IPy
用户输入=input('请输入地址或网段:(参考格式:192.168.1.1,192.168.1.0/24,192.198.1.1/255.255.255.0)\n请输入:')
IPS=IPy.IP(用户输入)
if len(用户输入)>=0:
    print('网络地址:{}'.format(IPS.net()))
    print('网络掩码:{}'.format(IPS.netmask()))
    print('广播地址:{}'.format(IPS.broadcast()))
    print('反向地址解析:{}'.format(IPS.reverseNames()[0]))
    print('子网个数:{}'.format(len(IPS)))

4、其它用法

在这里插入图片描述
在这里插入图片描述

参考文档:
IPy使用参考文档1
IPy使用参考文档2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅水鲤鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值