这是一篇旧时习作,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网络地址和广播地址计算相关推荐

  1. shell脚本之IP计算器

    一.需求说明   在CSDN问答区经常有学生提问关于IP地址计算的问题,这种题型无非就是根据IP地址和掩码计算网络地址.广播地址.地址掩码.可用地址范围.可用主机数量.其实关于这些我在博文TCP/IP ...

  2. Shell脚本判断IP是否合法性(多种方法)

    运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP.邮件地址等.那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考. 思路:IP由四位数字组成,以点分割,每 ...

  3. linux shell脚本 检查IP地址格式

    网上好多检查IP地址格式的脚本,大都看起来让人晕乎乎的.. 这里贴一个我自己写的比较简单易懂的脚本,根据自己的需要稍加改动应该就可以用了~~~ #!/bin/sh ip_string="1. ...

  4. Shell脚本之IP验证

    一.需求说明   我们在编写网络相关脚本的时候,尝尝会遇到需要判断IP地址是否合法的问题,需要知道输入的IP地址是否为一个正确的IP地址.又或者我们需要知道IP地址是公网IP地址还是私网IP地址.此博 ...

  5. shell脚本实战-IP是否在线脚本V2版本

    每个脚本都可以持续演化,比如这个IP是否在线脚本,实现了如下功能: 判断IP是否现在并在屏幕上显示 统计一共有多少在线,多少不在线的,并直接显示 提醒用户当前速度比较慢 增加监控脚本monitor 增 ...

  6. Shell脚本实现 ping功能

    Shell 脚本实现 ip ping 功能 具体代码: #!/bin/bash # ========================================================= ...

  7. shell脚本批量追踪ip路由走向

    shell脚本批量追踪ip路由走向 需求: 有大量ip地址需要追踪路由,查看是否经过(第三跳经过)192.168.23.2,如不经过,需要显示不能经过的ip 思路: 追踪路由用traceroute - ...

  8. shell脚本自动记录登陆后 的IP地址和历史记录

    转载 http://ruilinux.blog.51cto.com/4265949/845405  今天一台线上的服务器不知道被哪个活宝执行了chmod -R 700 /home,造成了文件权限不对, ...

  9. Linux的shell脚本实战之检查主机IP是否存在

    Linux的shell脚本实战之检查主机IP是否存在 一.目的及要求 二.脚本内容 二.运行结果 一.目的及要求 二.脚本内容 二.运行结果 一.目的及要求 检查 192.168.200.130~14 ...

最新文章

  1. CentOS Linux内核升级全过程
  2. Hadoop + MapReduce 端口自定义配置
  3. springboot mybatis 热加载mapper.xml文件(最简单)
  4. 图书管理系统 java 源码_[源码和文档分享]基于C语言和SQL SERVER数据库实现的图书管理系统...
  5. Flinksql读取Kafka写入Iceberg 实践亲测
  6. python loop until_python3-asyncio 学习笔记 3 -- run_until_complete
  7. gitlab汉化及关联LDAP
  8. java多态/重载方法——一个疑难代码引发的讨论
  9. java画图中运用缓冲解决屏幕闪烁方案二
  10. 以太坊智能合约实现代币空投
  11. docker 报错:x509: certificate has expired or is not yet valid
  12. eclipse配置jsp页面模板
  13. POST 请求的四种提交数据方式
  14. c语言mod是什么意思,mod什么意思中文意思,Mod是什么意思
  15. 如何查看远程端口是否打开
  16. vs2010背景图片配置方法
  17. dell台式机安装centos7网卡设置
  18. AlphaStar: Mastering the Real-Time Strategy Game StarCraft II 博客阅读
  19. 当APO生产订单报工遇到物料账期没开
  20. 提问 未来计算机的发展趋势是什么,计算机今后的发展趋势是什么?

热门文章

  1. mysql将大表定时转储_mysql数据库数据定时封装转储
  2. java用beaninfo_java 可以使用BeanInfo实现bean实体与map之间的互相转换
  3. android+tv+无线键盘,手机键盘有那些 5款适合手机使用的无线键盘推荐
  4. c++ 获取线程id_5分钟带你完全理解什么是线程
  5. hilbert变换_希尔伯特变换 matlab实现
  6. java applet配置_配置Java Applet的运行环境
  7. 二进制安全与MySQL的关系_《高可用MySQL》节选 -- 安全和二进制日志
  8. eclipse下java.lang.OutOfMemoryError: PermGen space解决方法
  9. 计算机考研:河南有哪些性价比高的学校?
  10. python类和对象实例_python的类和实例化对象