由于在公司内部项目研发中,遇到了很多网络方面的问题,需要对传入的各种参数进行检查,比如IP的合法性,掩码的合法性,计算子网,主机数等,考虑到这些检查都是共同的,所以在与组员商量沟通后,实现了一个通用的检查模块,可以安装到操作系统直接使用,避免各种重复代码的调用,而且能提供给其他python开发者使用.
主要提供的方法有:
isValidIP(ip_add): 检查IP是否合法
isValidMask(mask): 检查掩码是否合法
isUseableIP(ip_add, mask=None): 检查IP是否可用,注意与合法性检查区分
ip2int(ip_add): IP转为int
int2ip(int_num): int转为IP
calcSubnet(ip_add, mask): 计算子网
calcHostNum(mask): 计算主机数
isInSameNetwork (ip_add1, ip_add2, mask): 计算两个IP是否在同一子网
calcBroadcast (ip_add, mask): 计算广播地址
calcBroadcastBySubnet (subnet, mask): 根据子网计算广播地址
isNetConflict(ip_addr1, mask1, ip_addr2, mask2): 计算两个网络是否重叠
话不多说 直接上代码:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import re