IP数量就是计算机数量吗,如何利用bash/python计算IP子网容纳计算机数量
知道子网的IP和NETMASK,计算出这个子网可以包含多少台计算机?
1. 子网IP,NETMASK,子网广播IP。子网容量。
知道这三个钟任意两个,都可以得到第三个值,知道这三个值,就可以知道第四个了。例如:192.168.1.22/25。前面是子网IP地址,25是子网掩码,得到所以把22换算成二进制(00010110),其中第一位被分到网络地址里了。剩下的位数改为1,即为子网广播地址(192.168.1.127)。22~127之间且不包括两边值得数量就是计算机数量了。
2. bc对十进制和二进制进行。二进制结果如果不足八位左边补0(IP要求)
[huang@huang ~]$ echo 'obase=2; 22'| bc
10110
[huang@huang ~]$ echo 'ibase=2; 111'| bc
7注意:这里不必再加ibase=10/obase=10,因为系统默认ibase,obase都是十进制。否则会出错!
3. python也可以达到相同功能。使用内置函数int(),bin(),python -c 把二进制和十进制换算。但是要注意bin(),返回前两个字节是0b,和输出结果没有关系。所以最好剔除。
[huang@huang ~]$ python -c "print int('01111111',2);"
127
[huang@huang ~]$ python -c 'print bin(22)'| cut -d'b'-f2
10110
4. 用bash写的一个的脚本实例:
#!/bin/bash
# return the number of PC in subnet according to subnet IP and NETMASK
# sample: 192.168.1.22/26
# check the format of $1
usage(){
echo 'format 192.168.1.1/25'
exit 1
}
# check param
if ["$#"== 0 ];then
usage
elif ["$#"== 1 ];then
echo $1 | grep -qxP '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/[0-9]{2}'|| usage
else
usage
fi
# calculate the number of PC the subnet can contain
nmask=`echo $1 | cut -d\/-f2`
nip=`echo $1 | cut -d\/-f1`
# convert 10 base to 2 base
nbin=''
fori in `echo $nip | cut -d.-f1,2,3,4 --output-delimiter=' '`
do
ip_part_bin=`echo "obase=2;$i"| bc |tr-d '\n'`
num=`echo -n $ip_part_bin | wc -c`
# add 0 if the count of ip_part is less than 8
if ["$num"-lt 8 ];then
let theless=8-"$num"
while ["$num"-lt 8 ]
do
ip_part_bin=`echo -n "$ip_part_bin"| sed 's/^/0/'`
let num+=1
done
fi
nbin+="$ip_part_bin"
done
echo $nbin
输出值是:
[nanhuang@nanhuang ~]$ bash binaryip.sh '10.10.10.0/26'
00001010000010100000101000000000
IP数量就是计算机数量吗,如何利用bash/python计算IP子网容纳计算机数量相关推荐
- php禁止指定ip访问网站,方法分享:如何利用.htaccess禁止某个IP访问网站
这篇文章主要给大家介绍了关于利用.htaccess实现禁止某个IP访问网站的方法,通过设置禁止某个IP段的访问,增加该虚拟主机的安全性,文中通过图文及示例代码介绍的非常详细,需要的朋友们可以参考借鉴, ...
- 计算机运算的基本原理概论,[工学]7计算概论A A02 计算机的基本原理.pdf
[工学]7计算概论A A02 计算机的基本原理 <计算概论A>课程 计算机的基本原理 李李 戈戈 北京大学 信息科学技术学院 软件研究所 2011年9月9 日 图灵机的由来图灵机的由来 ...
- 计算机课进制笔记,初学Python课程笔记-第一课(计算机基本概念+进制+环境变量)...
这是我第一次写博客,简单地聊聊当下的感受.其实,早在大学期间就有过把自己所学的一些知识点记录在某个平台,可供日后自己复习.只是本人并非计算机专业出身,平时写代码写得不是不多.直到毕业参与工作,从事软件 ...
- 邵武计算机培训机构在哪里,邵武云计算培训,邵武计算机培训价格,邵武计算机培训有哪些 - IT教育频道...
邵武云计算培训 首页 > 计算机 > 邵武云计算培训 作者:镀金池 发布时间:2019-08-06 扼要描写easyui3的data-options初始化体例.有没有从中获得一些开导呢 ...
- [转载] 语言程序设计第4版黄洪艺_计算机二级教程 Python语言程序设计 第8章python计算生态...
参考链接: Python | 接球比赛 第八章学习知识导图 考点主要是: 1) 基本的Python内置函数 2) 了解Python计算生态 3) 作者归纳:这章看一下基本概念,主要认真看一下代码和代码 ...
- 免费送全国计算机等级考试资料(新增Python题库)
再次免费送新题库全国计算机等级考试资料(新增Python题库) 全国计算机等级考试(National Computer Rank Examination,以下简称 NCRE),是经原国家教育委员会(现 ...
- python爬虫ip代理没有作用_可能是一份没什么用的爬虫代理IP指南
写在前面 做爬虫的小伙伴一般都绕不过代理IP这个问题. PS:如果还没遇到被封IP的场景,要不你量太小人家懒得理你,要不就是人家压根不在乎... 爬虫用户自己是没有能力维护一系列的代理服务器和代理IP ...
- 同软件多个线程设置不同ip_IP数量不够该如何解决,快试试掘金网ip代理
当你利用爬虫爬取网络信息的时候经常会莫名其妙的被目标网站禁止访问,你可以查找以下几个原因: 第一如果你察觉你获取到的信息内容和目标网站所屏幕显示的正常信息不同,换句话说所抓取的信息是一片空白的,那么很 ...
- python绘制全国图,利用Python绘制全国主要城市医院数量分布地图
从国家统计局网站上下载了一份近几年全国主要城市的医院和卫生院个数.数据格式如下,另外我本来以为随着经济发展,每个城市的医院数量会逐年增加的,不知道为什么几乎所有城市2017年的数量都比16年少很多. ...
最新文章
- php分区表,分区表的基本操作
- 05.full_text match_bool_prefix match_phrase_prefix 查询
- 单片机开发与Linux开发有何不同?
- spring-data-jpa原理探秘(2)-RepositoryQuery的用途和分类
- 谷歌浏览器安装过程-0223
- GridView中 选中checkbox,在上下页 保存选中的值
- ScrollView如何判断滑动到底部以及getHeight()方法与getMeasuredHeight()方法的一些理解
- 慎用"加速"一词,可以使用"早日"代替
- 【计算机网络】计算机网络基础知识笔记
- FreeCAD开发:修改了源码,需要翻译成中文,如何更新语言包
- 老毛桃PE工具去除捆绑软件的方法
- 使用Visual Studio命令提示查看cad中的重整函数
- 《对比Excel,轻松学习Python数据分析》读书笔记------数据可视化
- 使用BetterScroll封装页面滚动及轮播图组件(一文入门移动端页面滚动神器BetterScroll)
- 仿豌豆荚实现android连接pc方法
- 东南大学计算机学院足球队,2017春季“放飞智能”杯东南大学苏州校友足球队比赛赛事系列报道(八)...
- 使用UltraISO制作纯U盘引导,UEFI安装win10[单文件超过4G]
- 【主题词——蓝色妖姬】
- python pygame模块按键响应
- [教程] 米4终极救黑砖教程 有用
热门文章
- Python中的可变与不可变对象
- uView u-button修改样式
- 中国甜叶菊乳制品市场趋势报告、技术动态创新及市场预测
- 2021-2025年中国充气救生衣行业市场供需与战略研究报告
- java 校验的接口中的字符必须是半角的_初识Java,笔记1
- Linux 免费学习路线大全,你想要的都在这里啦(持续更新,欢迎收藏❤️关注点赞加评论)
- 女程序员在GitHub提交PR更易被拒?开源世界“她”力量
- 监控系统可以终结酒驾吗?
- 强制好评,付费去广告,诈骗应用横行AppStore
- 苹果或推出粉色款iPhone 13;用户超 8 亿,拼多多再超阿里;贝索斯将于7月5日卸任亚马逊CEO|极客头条...