# author: 阿辉枫情
import re
import struct
import socket def IPSplitBlocks(minip, maxip):
result = []
JudgeIp = re.compile(r'^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$')
Flage_min = JudgeIp.match(minip)
Flage_max = JudgeIp.match(maxip)
if Flage_min and Flage_max:
minip_num = socket.ntohl(struct.unpack(
"I", socket.inet_aton(str(minip)))[0])
maxip_num = socket.ntohl(struct.unpack(
"I", socket.inet_aton(str(maxip)))[0])
if minip_num > maxip_num:
print "Error:[%s,%s] IP address size is not legitimate" % (minip, maxip)
exit()
else:
step = 2**(32 - subnet) - 1
min_num = minip_num
while True:
max_num = min_num & (~step & 0xFFFFFFFF)
max_num |= step & 0xFFFFFFFF
if max_num >= maxip_num:
minip = socket.inet_ntoa(
struct.pack('I', socket.htonl(min_num)))
maxip = socket.inet_ntoa(
struct.pack('I', socket.htonl(maxip_num)))
result.append((minip, maxip))
break
minip = socket.inet_ntoa(
struct.pack('I', socket.htonl(min_num)))
maxip = socket.inet_ntoa(
struct.pack('I', socket.htonl(max_num)))
result.append((minip, maxip))
min_num = max_num + 1
else:
print "Error:[%s,%s] IP addresses are not legitimate!!!" % (minip, maxip)
exit()
return result
if __name__ == '__main__':
subnet = 24
print IPSplitBlocks("192.168.1.1","192.168.2.1",)

python子网拆分IP段的更多相关文章

  1. 批量ip段/子网转换

    #coding=utf-8 import re import struct from sys import argv class CIDRHelper(object): def ipFormatChk ...

  2. python 单例模式获取IP代理

    python 单例模式获取IP代理 tags:python python单例模式 python获取ip代理 引言:最近在学习python,先说一下我学Python得原因,一个是因为它足够好用,完成同样 ...

  3. [转帖]IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?

    IP地址.子网掩码.网络号.主机号.网络地址.主机地址以及ip段/数字-如192.168.0.1/24是什么意思? 2016年03月26日 23:38:50 JeanCheng 阅读数:105674  ...

  4. 批量屏蔽符合条件的IP地址,支持添加白名单,IP段,增量,大于指定次数的IP

    批量屏蔽符合条件的IP地址,支持添加白名单,IP段,增量 大概的思路是利用sh,从日志中提取出来对应的IP地址,然后再交由python进行对比,判断,最终将需要添加至iptables列表中的IP写入到 ...

  5. 【转】IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段

    背景知识 IP地址 IP地址被用来当做Internet上的电脑的身份编号.大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信.我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就 ...

  6. tftp 限制ip 限制ip段 或者多个ip段访问

    1 限制单个ip访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加  only_form =ip 重启 service xinet ...

  7. 寻找子域名的IP段

    校网网络安全检测,第一步,我们做的工作是找出学校所有的IP段.  当然,期间我们可以利用软件帮助我们扫描,但是一款软件往往是不够的,因为它全面,所以我们用了IISPutScanner,subDomai ...

  8. Nginx 禁用IP IP段

    最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了 方法一:直接在LB机器上封IP 1.在 blocksip.conf 文件中加入要屏蔽的ip或 ...

  9. 【转】 ip段/数字,如192.168.0.1/24是什么意思?

    http://blog.csdn.net/aerchi/article/details/39396423 ip段/数字,如192.168.0.1/24是什么意思? ip段/数字,如192.168.0. ...

随机推荐

  1. 【原】Mac下统计任意文件夹中代码行数的工具——cloc

    这里介绍一个Mac系统统计代码行数的工具cloc. 1.首先,安装homebrew,已安装的请跳过. 打开终端工具Terminal,输入下列命令.过程中会让你按RETURN键以及输入mac桌面密码,按 ...

  2. 浅谈自定义UITextField的方法

    观察效果图 UITextField有以下几种特点: 1.默认占位文字是灰色的 2.当光标点上去时,占位文字变为白色 3.光标是白色的 接下来我们通过不同的方法来解决问题 一.将xib中的UITextF ...

  3. iOS 学习 - 11.圆角(小于等于四个)类似气泡和计算字符高度

    使用贝塞尔曲线, // 小于四个角 圆角 -(void)setbor{ NSString *str = @" couldn't fit this all in a comment to @l ...

  4. 网络编程---HTTP

    URL: 什么是URL ? URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位置,互联网上的每个资 ...

  5. html的层叠次序---真没有想象的简单

    学习资料1: http://www.cnblogs.com/mind/archive/2012/04/01/2198995.html 学习资料2:http://www.cnblogs.com/weib ...

  6. Git从零教你入门(4):Git服务之 gogs部署安装

    Git从零入门系列4: 先看上一篇文章: http://www.51testing.com/index.php?uid-497177-action-viewspace-itemid-3706817 今 ...

  7. 10个开源的PHP网站内容管理系统

    1. DEDE -这是一款国内开源的cms,作者是一个个人,能做出如此功能的cms,是相当不错的.2007版功能十分强大,希望能改善之前数据量一大,更新静态页就很慢的缺点.因为开源,有较多的玩家和拥护 ...

  8. DataTable操作

    一 复制DataTable中符合条件的DataRow到新的DataTable中 One: DataTable TableTemp = new DataTable();//临时table DataTab ...

  9. Docker是什么

    Docker是什么 相信我们很多人都使用多VM(Virtual Machine),也就是虚拟机,简单的来说Docker就是类是于VM的容器,但Docker要轻量得多,VM(Virtual Machin ...

  10. make

    make会自动搜索当前目录下的makefile或Makefile文件进行编译,也可以通过-f选项读取其他文件. make [-abvijm etc] -C dir表示到dir指定的路径去搜索文件 -f ...