子网掩码校验python

https://blog.csdn.net/swdwd/article/details/109389941


print ("**** 子网掩码的合法性判断程序 ****")

mask = input("please input mask address is:")

mask_split = mask.split(".")#让输入的字符分割成列表

noOb = [] #不要转换后的ob

for i in mask_split:#小数点隔开的每一数字段

    i = bin(int(i))#每一数字段转换为每一段的二进制数字段

    i = i[2:] #从每一段的二进制数字段的第三个数开始,因为前面有两个ob

    noOb.append(i.zfill(8))

#将除去了ob的每一二进制数字段自动右对齐填充到8位并添加到noOb这个空的列表里

  #.append:用于在列表末尾添加新的对象

  #.zfill:原字符串右对齐,自动填充到8位。

whole_mask = ''.join(noOb)

#''是空,以空连接noOb生成一个新的字符串

              #.join(序列)将序列中的元素以指定的字符连接生成一个新的字符串

whole = int(whole_mask,base=10) #将输入的十进制合并好转化成二进制                       

whole_str = str(whole)#将其转换为字符串,方便用find\rfind进行查找

whole0_find = whole_str.find("0")#查0从哪里开始

  #.find()从左向右查找字符串,如果包含字字符串返回开始的索引值,否则返回-1。

whole1_rfind = whole_str.rfind("1")#查1在哪里结束

  #.rfind()返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。                     

if whole1_rfind+1==whole0_find:#两者位置差1位为正确

    print ("true")

else:

    print("error")

————————————————

版权声明:本文为CSDN博主「ci_ei_y」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/swdwd/article/details/109389941

你可能感兴趣的:(子网掩码校验python)