前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >子网掩码计算 shell代码

子网掩码计算 shell代码

原创
作者头像
大大刺猬
修改2021-02-20 14:54:46
1.4K0
修改2021-02-20 14:54:46
举报
文章被收录于专栏:大大刺猬大大刺猬

子网掩码是怎么计算的,我就不讲了. 为方便使用,我没有写成脚本,而是以命令的形式给出来. 用管道符方便扩展

1. 子网掩码 转 数字

只需要把下面的255.255.240 替换为你的子网掩码即可

代码语言:javascript
复制
echo 255.255.240.0 | sed 's/\./ + /g;s/255/8/g;s/254/7/g;s/252/6/g;s/248/5/g;s/240/4/g;s/224/3/g;s/192/2/g;s/128/1/g' | bc

例子:

如果你没得bc,sed之类的命令,得先安装哈
如果你没得bc,sed之类的命令,得先安装哈

2. 数字(PREFIX) 转 子网掩码

只需要把下面的数字20替换为你的即可

这代码有待优化,太长了. 暂时不管,能用就行....

代码语言:javascript
复制
echo 20 | (read flagddcw1; tmp_ddcw_flag_net='';while [[ $flagddcw1 -gt 8 ]]; do flagddcw1=$[ $flagddcw1 - 8 ];tmp_ddcw_flag_net=${tmp_ddcw_flag_net}'8.'; done;echo ${tmp_ddcw_flag_net}${flagddcw1})  | awk -F . '{for(i=1; i<=4; i++) if($i ~ /^ *$/) $i=0}; {print $1 " " $2 " " $3 " " $4}' | (read flagddcw2;for i in $flagddcw2;do case $i in  0) echo -n 0.;; 1) echo -n 128.;; 2) echo -n 192.;; 3) echo -n 224.;; 4) echo -n 240.;; 5) echo -n 248.;; 6) echo -n 252.;; 7) echo -n 254.;; 8) echo -n 255.;; esac; done;) | (read flagddcw3;echo ${flagddcw3%.*})

例子:

其实可以转换为二进制,再用BC计算的. 但是可以穷举,我就偷懒了
其实可以转换为二进制,再用BC计算的. 但是可以穷举,我就偷懒了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 子网掩码 转 数字
  • 2. 数字(PREFIX) 转 子网掩码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档