正则表达式之子网掩码mask一篇就搞定

更新时间:2023-07-07 22:00:17 阅读: 评论:0

正则表达式之⼦⽹掩码mask⼀篇就搞定
正则表达式:
hotpotato
pattern = '^((128|192)|2(24|4[08]|5[245]))(\.(0|(128|192)|2((24)|(4[08])|(5[245])))){3}$'
Python 函数例⼦:
1import re
2def check_mask(mask_str):
3    pattern = '^((128|192)|2(24|4[08]|5[245]))(\.(0|(128|192)|2((24)|(4[08])|(5[245])))){3}$'
4    res = re.match(pattern, mask_str)
5    if not res:
6        return Fal
7    return True
nta
你拷贝过去就完事了,可能不会再刨根问底了。那为什么是这样写?你想过吗?
⼦⽹划分:是通过借⽤IP地址中若⼲位主机地址来充当的⽹络地址,从⽽将原⽹络划分为若⼲⼦⽹。amzn
计算机自考本科>所有美好的东西
拿 C类⼦⽹掩码 举例:
① 划分⼦⽹数 ② ⼦⽹位数 ③⼦⽹掩码(⼆进制) ④ ⼦⽹掩码(⼗进制) ⑤ 每个⼦⽹主机数
① 1~2        ② 1  ③ 11111111.11111111.11111111.10000000  ④ 255.255.255.128  ⑤ 126
① 3~4        ② 2  ③ 11111111.11111111.11111111.11000000  ④ 255.255.255.192  ⑤ 62
① 5~8        ② 3  ③ 11111111.11111111.11111111.11100000  ④ 255.255.255.224    ⑤ 30
① 9~16      ② 4  ③ 11111111.11111111.11111111.11110000    ④ 255.255.255.240  ⑤ 14
① 17~32    ② 5  ③ 11111111.11111111.11111111.11111000    ④ 255.255.255.248    ⑤ 6
① 33~64    ② 6  ③ 11111111.11111111.11111111.11111100    ④ 255.255.255.252    ⑤ 2
借位:从左到右借的,不是从右到左,所以只能是 128,192,224,240,248,252,254,255。
但在这⾥ 254,255 没啥意义,因为每个⼦⽹中,第⼀个IP地址(即主机部分全部为0的IP)和最后⼀个IP(即主机部分全部为1的IP)不能分配给主机使⽤。
bathroom的音标所以 B类⼦⽹掩码 来说,只能是下⾯的⼏个:
255.255.0.0
255.255.128.0
翻译后修饰255.255.192.0
255.255.224 .0
255.255.240.0
255.255.248.0
255.255.252.0
ich255.255.254.0
255.255.255.0
255.255.255.128
255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 A类⼦⽹掩码:255.0.0.0
255.128.0.0 255.192.0.0 255.224.0.0 255.240.0.0 255.248.0.0 255.252.0.0 255.254.0.0 255.255.0.0 255.255.128.0 255.255.192.0 255.255.224 .0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252
CIDR 格式的IP段 输出 字符串格式的⼦⽹掩码:
例如: 192.168.1.1/24 的⼦⽹掩码是 255.255.255.0
1def exchange_maskint(mask_int):
2    bin_arr = ['0' for i in range(32)]
3    for i in range(mask_int):
4        bin_arr[i] = '1'
5    tmpmask = [''.join(bin_arr[i * 8:i * 8 + 8]) for i in range(4)]
2018研究生国家线6    tmpmask = [str(int(tmpstr, 2)) for tmpstr in tmpmask]
bbcnews
7    return '.'.join(tmpmask)
8
9def get_mask(cidr):
10    mask = cidr.split("/")[1]
11    return exchange_maskint(int(mask))
12
13print(get_mask('192.168.1.1/24'))

本文发布于:2023-07-07 22:00:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1084368.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:掩码   完事   部分   格式   计算机   分配   翻译   研究生
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图