linux查看主机脚本,简单的bash脚本查看任意网段的在线主机
一前言
最近看到许多同志在写ping某个地址段的bash脚本,我也心血来潮来了一发。 当然本人新手,大神勿喷。
二准备工作
linux系统的机器一台,当然虚拟机也可以,只要将网卡配置为桥接模式,可以连通其他局域网的主机即可。
1.实验环境 Centos 7.X 虚拟机 软件 bash ping
2.说明 首先系统当然是任何 linux类或类linux的机器都是可以的 虚拟机安装完成后首先配置网卡
BOOTPROTO 我这里使用的是静态的IP地址当然你也可以使用静态ip
ONBOOT 是否启用网卡 改为yes不然重启机器后网卡又失效了
IPADDR 我这里是使用的静态IP如果你的BOOTPROTO使用的是dhcp可以不用改这里
PREFIX 子网掩码的位数我这里使用的是172.18.0.0网段所以子网掩码是16位如果你的BOOTPROTO使用的是dhcp可以不用改这里
GATEWAY 默认网段不多解释如果你的BOOTPROTO使用的是dhcp可以不用改这里
DNS1 DNS地址用来解析域名的如果你没设好吧你无法登陆www.baidu.com了除非你知道他的IP地址
3.查看命令是否存在
man了一下ping命令查看一下具体用法 由man可以得知 -c是指定ping的次数 -W指定超时时间 好的开始
三脚本
为了能让各位安全使用我已经做了多次的测试 可能还有小bug欢迎致电
脚本的内容如下:
#!/bin/bash
#Auther:xiaowu
#Dtion:ping dao ni
#Vsion:2.3
declare -i Inet
declare -i Snet
[[ $1 =~ ([0-9]{1,3}\.){3}([0-9]{1,3})\/(2[4-9]|3[0-2]) ]] #正则表达式验证是否为正确格式
if [ $? -ne 0 ] ;then #判断格式是否配正确匹配
{
echo ” Usage:$0 172.18.0.0/24-32.” #如果格式未被正确匹配返回250状态码,并提示使用方法
exit 250
}
fi
Inet=`echo “$1″ | cut -d”.” -f4 | cut -d”/” -f1` #获取Ip地址位
Iseg=`echo “$1″ | cut -d”/” -f2` #获取子网掩码位
Ipv4=`echo “$1″ | cut -d”.” -f1,2,3` #获取主机位
echo “子网掩码的位数为:$Iseg” #输出子网掩码
echo “Ipv4的首个地址为:$Inet” #输出网络地址位
echo “查看的网段地址为:$Ipv4” #输出匹配的网络位
let Smask=32-$Iseg #计算子网掩码反掩码位数
echo “反向子网掩码位为:$Smask” #输出反掩码位数
Sips=$[2**$Smask] #计算出指定网络的IP数
echo “要查找的地址数为:$Sips” #输出主机个数
Snet=$[ $Inet + $Sips -1 ] #从指定主机数到输出的主机个数
if [ $Snet -gt 255 ] ;then #当地址数溢出时的补救措施
{
Snet=255 #主机数强制为255个
}
fi
for i in `seq $Inet $Snet`; #for循环从指定主机开始到指定网段结束的IP个数
do
ping -c1 -W1 $Ipv4.$i >/dev/null 2>&1 && echo -e “\033[32m$Ipv4.$i is \tup \033[0m” || echo -e “$Ipv4.$i is\033[31m \tdown \033[0m”
#ping 判断主机是在线还是 不在线
done
unset Inet Iseq Ipv4 wjy Smask Sips Snet #释放上边使用到的变量
使用方法 标准的IP地址/子网掩码的位数 譬如:172.18.252.0/24 172.18.253.20/28 172.18.6.110/30
主要是根据子网掩码来计算需要ping的主机个数 适用于经过子网掩码划分过的网络 最大支持/24 最多256个IP包括网络位地址和主机位地址
注:此脚本适用于任何网段 并不是仅限于172.18.0.0 因为作者是172.18.0.0网段的 所以没有用其他的网段测试
原创文章,作者:wode,如若转载,请注明出处:http://www.178linux.com/70381
linux查看主机脚本,简单的bash脚本查看任意网段的在线主机相关推荐
- 在ubuntu linux 中编写一个自己的bash脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...
- sh脚本和bash脚本_使用此简单的Bash脚本在家打印双面文档
sh脚本和bash脚本 我们家里有一台激光打印机. 惠普(Hewlett Packard)LaserJet Pro CP1525nw彩色打印机是一种较旧的型号,但它是一台出色的打印机,可以可靠地进行彩 ...
- 从脚本本身获取Bash脚本的源目录
如何获取其中的目录路径的Bash脚本所在,该脚本里面 ? 例如,假设我要使用Bash脚本作为另一个应用程序的启动器. 我想将工作目录更改为Bash脚本所在的目录,以便可以对该目录中的文件进行操作,如下 ...
- Linux——编写简单的Bash脚本
一.创建和执行Bash shell脚本: 借助Bash shell环境和脚本编写功能,可以将linux命令与shell脚本组合在一起,从而解决实际问题,可以通过文本编辑器打开新的空文件来创建Bash ...
- linux内存使用监控,如何利用Bash脚本监控Linux的内存使用情况
如何利用Bash脚本监控Linux的内存使用情况 发布时间:2020-09-13 14:36:53 来源:脚本之家 阅读:114 作者:Magesh Maruthamuthu 栏目:服务器 前言 目前 ...
- linux 占用内存 脚本,如何利用Bash脚本监控Linux的内存使用情况
前言 目前市场上有许多开源监控工具可用于监控 Linux 系统的性能.当系统达到指定的阈值限制时,它可以发送电子邮件警报.它可以监视 CPU 利用率.内存利用率.交换利用率.磁盘空间利用率等所有内容. ...
- linux内核与bash脚本接囗,Bash脚本编程之脚本基础和bash配置文件
脚本基础 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成机器可运行的二进制程序文件后,方可运行.例如C语言和Java语言. 解释运行:需要一个 ...
- 简单调试 Bash 脚本
用 Bash 写的脚本也可以进行调试,和 Python,Perl 等解释型语言一样.新建一个名为 servinfo 的脚本并增加可执行权限: $ vi servinfo#!/bin/bashecho ...
- xshell脚本简单代码_Xshell脚本
Xshell 常见脚本编译细节问题 #! /bin/bash 指令下 1.关于 test命令后面空格 2.if语句后面 then前的分号 调试有时不可省略 3.参数分隔的空格问题不可忽略!不可缺少! ...
最新文章
- 一文全览,AAAI 2020上的知识图谱
- php7的redis和yaf的扩展安装
- 将单链表的每K个节点之间逆序
- Linux Kernel 3.0新特性概览(转)
- Android学习之android源码的导入
- poj_1442 Treap
- C Tricks(十五)—— 算符优先级的表示
- 2022年前端还好找工作吗?
- 富爸爸穷爸爸读书感言
- 关于一起疑似脚本注入安全事件过程记录
- php dth网络节点,基于 DHT 网络的磁力链接和BT种子的搜索引擎架构
- Phaser用法详解
- 明星热图|刘诗诗、倪妮出席品牌活动;王一博、任嘉伦、龚俊等签约新品牌成为代言人...
- C++标准库(第二版,作者_NicolaiMJosuttis)_第六章标准模板库_概述
- 网传叮咚买菜大裁员?并非空穴来风
- wms仓库管理软件的七大产品特点
- 1*1卷积核的作用(bottleneck的作用)
- 发动机压缩比怎么计算公式_怎么知道汽车压缩比
- Java 中文字符判断 中文标点符号判断
- U盘安装Mac High Sierra(制作U盘启动必须是在mac系统中)
热门文章
- Java Comparable接口的陷阱
- Java EE 7公共草案已发布。 我需要Java EE Light Profile!
- 将Maven与Ivy集成
- JUnit 4.9(测试版3)中的规则
- 远程Linux主机安装zsh插件zsh-syntax-highlighting
- android dialog 字体,android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)
- 启动weblogic需要账号密码问题
- 使用aop解决事务问题(xml版)
- 小波滤波器与其他滤波器的区别_滤波器国产 VS 国外
- else 策略模式去掉if_如何用卫语句、策略模式、状态模式重构if-else语句