题目部分 判断两个IP是否属于同一子网?
答案部分#将/24的掩码转换位255.255.255.0这样点分十进制格式
def maskChange(self,mask):
'''netmask change, example: 24 change 255.255.255.0
Argv:
mask: 0 <= 32
Return:
netmask is ip, example 255.255.255.0
'''
mask = int(mask)
binary32 = []
for i in range(32):
binary32.append('0')
for i in range(mask):
binary32[i] = '1'
binary_ip = []
for i in range(4):
binary_ = ''.join(binary32[i * 8:i * 8 + 8])
decimal = str(int(binary_, 2))
binary_ip.append(decimal)
netmask = '.'.join(binary_ip)
return netmask
##和ipToBinary差不多
def ipToNum(self,ip):
'''ip address change binary
Argv:
ip: ip address,example:1.1.1.1
Return:
neumber
'''
ip_num = ip.split('.')
ip = []
for x in ip_num:
ip.append(int(x))
ip_num = ip[0]<<24 | ip[1]<<16 | ip[2]<<8 | ip[3]
return ip_num
##和maskChange结合在一起,就与maskToBinary差不多,
def maskToNum(self,mask):
'''netmask change binary
Argv:
ip: netmask,example: 24 or 255.255.255.0
Return:
neumber
'''
mask_list = str(mask).split('.')
if len(mask_list) == 1:
mask = self.maskChange(int(mask))
mask_num = self.ipToNum(mask)
return mask_num
About Me:小婷儿
● 本文作者:小婷儿,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用
● 作者博客地址:https://blog.csdn.net/u010986753
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 微信:tinghai87605025 联系我加微信群
● QQ:87605025
● QQ交流群py_data :483766429
● 公众号:python宝 或 DB宝
● 提供OCP、OCM和高可用最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!
有您的支持,小婷儿一定会越来越好!