使用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设计】。

相关文章

基于python2.7实现图形密码生成器的实例代码

具体代码如下所示: #coding:utf8 import random,wx def password(event): a = [chr(i) for i in range(9...

浅谈Python类中的self到底是干啥的

Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上。后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了。...

mysql 之通过配置文件链接数据库

mysql 之通过配置文件链接数据库 配置文件jdbc.properties ##MySQL driver=com.mysql.jdbc.Driver url=jdbc\:mysql...

分析Python编程时利用wxPython来支持多线程的方法

如果你经常使用python开发GUI程序的话,那么就知道,有时你需要很长时间来执行一个任务。当然,如果你使用命令行程序来做的话,你回非常惊讶。大部分情况下,这会堵塞GUI的事件循环,用户...

使用python制作一个为hex文件增加版本号的脚本实例

使用python制作一个为hex文件增加版本号的脚本实例

最近公司一个项目需要用到IAP升级,要求将APP的版本号在hex文件添加,于是尝试用python写一个脚本,运行之后可以自动增加版本号,并且日期都是当天的 import re imp...