Shell脚本之IP网络地址和广播地址计算
这是一篇旧时习作,Shell脚本练得多了,想练练移位计算,就有了下面的脚本。
#!/bin/bash IPPattern="(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>" maskPattern="[1-9]|[12][0-9]|3[01]"while : doecho -e -n "Please input a legal IP address [such as 192.168.1.1/16]: "read userInputIPMask=`echo $userInput | egrep "$IPPattern/$maskPattern"` #Such as 192.168.1.1/24if [ -z "$IPMask" ] ;thenecho "Please input the right format. [such as 192.168.1.1/1-31] "continuefiIPAddr=`echo $IPMask | cut -d/ -f1`IPType[1]=`echo $IPAddr | cut -d. -f1`IPType[2]=`echo $IPAddr | cut -d. -f2`IPType[3]=`echo $IPAddr | cut -d. -f3`IPType[4]=`echo $IPAddr | cut -d. -f4`mask=`echo $IPMask | cut -d/ -f2`echo "IP address is ${IPType[1]}*${IPType[2]}*${IPType[3]}*${IPType[4]} , Mask is $mask ."((IPHex[1]=IPType[1]<<24))((IPHex[2]=IPType[2]<<16))((IPHex[3]=IPType[3]<<8))((IPHex[4]=IPType[4]))#192 c0 ; 1 1 1((iph=${IPHex[1]}+${IPHex[2]}+${IPHex[3]}+${IPHex[4]}))#echo $iph#0xffffffff#declare -i strMask1=4294967295declare -i strMask1=0xffffffff#echo $strMask1((strMask1=strMask1<<(32-mask) & 0xffffffff))#echo $strMask1((strMask2=~strMask1))#echo $strMask2((networkAddr=iph & strMask1))((bcastAddr= (iph | strMask2) & 0xffffffff))#echo $networkAddr | awk '{printf "%x\n",$0}'#echo $bcastAddr | awk '{printf "%x\n",$0}'((IPHex[1]=networkAddr>>24 & 0x000000ff))((IPHex[2]=networkAddr>>16 & 0x000000ff))((IPHex[3]=networkAddr>>8 & 0x000000ff))((IPHex[4]=networkAddr & 0x000000ff))echo -e "Network Address : ${IPHex[1]}.${IPHex[2]}.${IPHex[3]}.${IPHex[4]}"((IPHex[1]=bcastAddr>>24 & 0x000000ff))((IPHex[2]=bcastAddr>>16 & 0x000000ff))((IPHex[3]=bcastAddr>>8 & 0x000000ff))((IPHex[4]=bcastAddr & 0x000000ff))echo -e "Broadcast Address : ${IPHex[1]}.${IPHex[2]}.${IPHex[3]}.${IPHex[4]}" done
转载于:https://blog.51cto.com/me2xp/1739208
Shell脚本之IP网络地址和广播地址计算相关推荐
- shell脚本之IP计算器
一.需求说明 在CSDN问答区经常有学生提问关于IP地址计算的问题,这种题型无非就是根据IP地址和掩码计算网络地址.广播地址.地址掩码.可用地址范围.可用主机数量.其实关于这些我在博文TCP/IP ...
- Shell脚本判断IP是否合法性(多种方法)
运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP.邮件地址等.那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考. 思路:IP由四位数字组成,以点分割,每 ...
- linux shell脚本 检查IP地址格式
网上好多检查IP地址格式的脚本,大都看起来让人晕乎乎的.. 这里贴一个我自己写的比较简单易懂的脚本,根据自己的需要稍加改动应该就可以用了~~~ #!/bin/sh ip_string="1. ...
- Shell脚本之IP验证
一.需求说明 我们在编写网络相关脚本的时候,尝尝会遇到需要判断IP地址是否合法的问题,需要知道输入的IP地址是否为一个正确的IP地址.又或者我们需要知道IP地址是公网IP地址还是私网IP地址.此博 ...
- shell脚本实战-IP是否在线脚本V2版本
每个脚本都可以持续演化,比如这个IP是否在线脚本,实现了如下功能: 判断IP是否现在并在屏幕上显示 统计一共有多少在线,多少不在线的,并直接显示 提醒用户当前速度比较慢 增加监控脚本monitor 增 ...
- Shell脚本实现 ping功能
Shell 脚本实现 ip ping 功能 具体代码: #!/bin/bash # ========================================================= ...
- shell脚本批量追踪ip路由走向
shell脚本批量追踪ip路由走向 需求: 有大量ip地址需要追踪路由,查看是否经过(第三跳经过)192.168.23.2,如不经过,需要显示不能经过的ip 思路: 追踪路由用traceroute - ...
- shell脚本自动记录登陆后 的IP地址和历史记录
转载 http://ruilinux.blog.51cto.com/4265949/845405 今天一台线上的服务器不知道被哪个活宝执行了chmod -R 700 /home,造成了文件权限不对, ...
- Linux的shell脚本实战之检查主机IP是否存在
Linux的shell脚本实战之检查主机IP是否存在 一.目的及要求 二.脚本内容 二.运行结果 一.目的及要求 二.脚本内容 二.运行结果 一.目的及要求 检查 192.168.200.130~14 ...
最新文章
- CentOS Linux内核升级全过程
- Hadoop + MapReduce 端口自定义配置
- springboot mybatis 热加载mapper.xml文件(最简单)
- 图书管理系统 java 源码_[源码和文档分享]基于C语言和SQL SERVER数据库实现的图书管理系统...
- Flinksql读取Kafka写入Iceberg 实践亲测
- python loop until_python3-asyncio 学习笔记 3 -- run_until_complete
- gitlab汉化及关联LDAP
- java多态/重载方法——一个疑难代码引发的讨论
- java画图中运用缓冲解决屏幕闪烁方案二
- 以太坊智能合约实现代币空投
- docker 报错:x509: certificate has expired or is not yet valid
- eclipse配置jsp页面模板
- POST 请求的四种提交数据方式
- c语言mod是什么意思,mod什么意思中文意思,Mod是什么意思
- 如何查看远程端口是否打开
- vs2010背景图片配置方法
- dell台式机安装centos7网卡设置
- AlphaStar: Mastering the Real-Time Strategy Game StarCraft II 博客阅读
- 当APO生产订单报工遇到物料账期没开
- 提问 未来计算机的发展趋势是什么,计算机今后的发展趋势是什么?
热门文章
- mysql将大表定时转储_mysql数据库数据定时封装转储
- java用beaninfo_java 可以使用BeanInfo实现bean实体与map之间的互相转换
- android+tv+无线键盘,手机键盘有那些 5款适合手机使用的无线键盘推荐
- c++ 获取线程id_5分钟带你完全理解什么是线程
- hilbert变换_希尔伯特变换 matlab实现
- java applet配置_配置Java Applet的运行环境
- 二进制安全与MySQL的关系_《高可用MySQL》节选 -- 安全和二进制日志
- eclipse下java.lang.OutOfMemoryError: PermGen space解决方法
- 计算机考研:河南有哪些性价比高的学校?
- python类和对象实例_python的类和实例化对象