使用Python获取网段IP个数以及地址清单的方法

yipeiwu_com7年前Python基础

使用Python获取网段的IP个数以及地址清单需要用到IPy的库,而相应的方法主要就是IP。

写小脚本如下:

 from IPy import IP

 ip = IP('192.168.0.0/16')

 print(ip.len())

 for x in ip:

  print(x)

运行结果:

GreydeMac-mini:01_系统基础信息模块详解 greyzhang$ python ip.py

65536

192.168.0.0

192.168.0.1

192.168.0.2

192.168.0.3

192.168.0.4

192.168.0.5

192.168.0.6

192.168.0.7

192.168.0.8

192.168.0.9

192.168.0.10

192.168.0.11

192.168.0.12

192.168.0.13

192.168.0.14

192.168.0.15

192.168.0.16

192.168.0.17

……………………

192.168.255.241

192.168.255.242

192.168.255.243

192.168.255.244

192.168.255.245

192.168.255.246

192.168.255.247

192.168.255.248

192.168.255.249

192.168.255.250

192.168.255.251

192.168.255.252

192.168.255.253

192.168.255.254

192.168.255.255

从上面的结果中可以看出,这个王端中共有65535个IP,同时脚本输出了所有的IP地址清单。至于这个IP地址的含义可以再做一下简单的解释。代码中的192.168.0.0/16其实是一个私有地址网段。早起的网络设计中,总是尝试给所有的计算机分配一个固定的地址,但是随着局域网的发展这个多少有点不必要了。私有的局域内部网络很多时候并不需要保护共有IP。未连接到互联网上的机器并不需要使用唯一的IP地址,因为它并不在因特网上路由,也不需要与IP地址注册表协调。在RFC 1981中保留了IPV4的三个费重叠地址,具体的地址说明如下:

Python 获取网段IP个数以及地址清单

而代码中,用到的便是上面表格中的第三个。针对前面两个的网段IP数目进行获取如下:

In [67]: ip1 = IP('172.16.0.0/12')


In [68]: ip1.len()

Out[68]: 1048576


In [69]: ip2 = IP('10.0.0.0/8')


In [70]: ip2.len()

Out[70]: 16777216

以上这篇使用Python获取网段IP个数以及地址清单的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python按键按住不放持续响应的实例代码

在学习飞机大战(我也不知道为什么都拿这个练手),飞机左右控制都是按键按一次移动一次,不能按住一个键后持续移动,离开后停止移动。 为了解决这个,查看了参考手册,说让用pygame.key....

10种检测Python程序运行时间、CPU和内存占用的方法

10种检测Python程序运行时间、CPU和内存占用的方法

在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢? 首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分...

使用celery执行Django串行异步任务的方法步骤

前言 Django项目有一个耗时较长的update过程,希望在接到请求运行update过程的时候,Django应用仍能正常处理其他的请求,并且update过程要求不能并行,也不能漏掉任何...

python 限制函数调用次数的实例讲解

如下代码,限制某个函数在某个时间段的调用次数, 灵感来源:python装饰器-限制函数调用次数的方法(10s调用一次) 欢迎访问 原博客中指定的是缓存,我这里换成限制访问次数,异曲同工...

使用Pandas对数据进行筛选和排序的实现

使用Pandas对数据进行筛选和排序的实现

筛选和排序是Excel中使用频率最多的功能,通过这个功能可以很方便的对数据表中的数据使用指定的条件进行筛选和计算,以获得需要的结果。在Pandas中通过.sort和.loc函数也可以实现...