linux查看主机脚本,简单的bash脚本查看任意网段的在线主机

一前言

最近看到许多同志在写ping某个地址段的bash脚本,我也心血来潮来了一发。  当然本人新手,大神勿喷。

二准备工作

linux系统的机器一台,当然虚拟机也可以,只要将网卡配置为桥接模式,可以连通其他局域网的主机即可。

1.实验环境  Centos 7.X 虚拟机  软件 bash  ping

2.说明  首先系统当然是任何 linux类或类linux的机器都是可以的 虚拟机安装完成后首先配置网卡

3c8ce6380daa33c267ccb0e2e66a02de.png

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.查看命令是否存在

3c8ce6380daa33c267ccb0e2e66a02de.png

man了一下ping命令查看一下具体用法   由man可以得知  -c是指定ping的次数  -W指定超时时间  好的开始

3c8ce6380daa33c267ccb0e2e66a02de.png

三脚本

为了能让各位安全使用我已经做了多次的测试  可能还有小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网段的  所以没有用其他的网段测试

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

原创文章,作者:wode,如若转载,请注明出处:http://www.178linux.com/70381

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中什么叫合法的标识_python合法标识符要求是什么

python合法标识符要求是:1、不能以数字开头;2、不能包含非法字符;3、数字不能作为标识符;4、不能包含空格;5、不能包含运算符。1.不能以数字开头>>> 2bin2 File "", line 1 2bin2 ^ SyntaxError: i…

android界面实现框架内页面跳转_KVM虚拟化管理平台的实现

KVM虚拟化管理平台的实现源码链接:https://github.com/wsjhk/IaaS_admin.git视频演示链接:https://v.youku.com/v_show/id_XMjg4MTczODU1Ng.html(N年前刚开始学习Python时做的第一个自主设计实现项目,代码实在写的烂,不喜勿喷&…

suse linux 查看内存,Suse linux查询内存大小的指令是什么?

满意答案CJTHI2013.08.18采纳率:49% 等级:12已帮助:5850人下面和大家分享在Linux系统下查看内存使用情况的free命令:[rootscs-2 tmp]# freetotal used free shared buffers cachedMem: 3266180 3250004 16176 0 110652 2668236…

Linux微信运行错误,Ubuntu 16.04 运行微信开发者工具编译出错的解决办法

最近有折腾小程序的意向,但微信的开发者工具只提供了 Windows 和 Mac 两个版本,对于我这样的 Linux 用户来说不是那么地友好。经过观察发现,那个开发者工具实际上是基于nw.js开发的,天然地具有跨平台的属性,搜索Github…

springboot security 权限校验_springboot借助aop和注解实现权限校验

我们用springboot做后台开发,难免会用到权限校验,比如查看当前用户是否合法,是否是管理员。而spring的面向切面的特效可以帮助我们很好的实现动态的权限校验。这里我们就用到的spring的aop。接下来就带领大家用aop和注解来快速的实现权限校验…

electron sqlite3_electron集成sqlite3,win10上折腾了2天

要看解决办法的,直接把文章滚动到最后就行了,很简单。最近要做个 IM,PC 端选择用 electron,跨端的最佳选择了。桌面端项目,肯定少不了本地数据库,本来想用 sql.js,看了下需要手动拼接 SQL 语句&…

arrays中copyof复制两个数组_C语言100题集合026-使用指针交换两个数组中的最大值

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。喜欢的同学记得点赞、转发、收藏哦~后续C语言经典100例将会以pdf和代码的形式发放到公众号欢迎关注:计算广告生态 即时查收1 题目函数:max()、swap()功能&#xff1a…

红头文件rgb红色值_拿下抖音小姐姐,我写了个口红色号识别器

对于广大“钢铁直男”的程序员来说,送什么礼物给女朋友一直是个世纪难题。其实哄女朋友开心最深的套路就是花式送口红,就问谁抵挡得住啊啊啊啊......“没有什么问题是一支口红解决不了的,如果有,那就两支。”于是,直男…

腾讯offer是什么样子_月薪35K:2020腾讯Java后端开发详细面试流程

背景2017年我毕业于某不知名二本院校,校招进入一安防企业; 从事于后台服务接入工作。期间一直不断的提高自己,终于在今年如愿以偿,获得腾讯后台开发岗位offer。因此想借此分享成长路上的思考与困难,以及腾讯面试的整个流程。同时在…

javafx中的tree_JavaFX中的塔防

javafx中的tree我想长时间使用我的游戏引擎来编写《塔防》游戏,但是由于另一个小组努力创建JavaFX《塔防》游戏,所以我认为我宁愿创建另一款游戏。 从邮件列表中,我了解到不再开发其他游戏。 因此,我决定尝试一下。 塔防是一款非…

ubuntu linux theme,如何在Ubuntu 20.04中启用全局暗黑主题

Ubuntu 20.04在设置实用程序中引入了新的Dark暗模式。但是,当您在Gnome Shell中将其打开时,它并不是完全暗黑。系统任务栏菜单,顶部栏中的日历,通知弹出窗口和桌面上下文菜单不是暗的,而且当您在 Light,Dar…

python3语音识别模块_零基础教你玩转语音控制,学习语音控制技术,打造智能生活很简单...

大家好,我是阿乐,今天给大家讲解一下LD3320语音识别模块。先来看看模块实物,它是长这个样子的:LD3320语音识别模块实物我现在用来给大家做讲解的这个模块是已经集成了单片机在上面,这样子开发起来就更简单一些&#xf…

c语言程序设计常用语句格式,全国计算机考试二级C语言程序设计要求

(一)C语言的结构1、程序的构成,main函数和其他函数。2、头文件、数据说明、函数的开始和结束标志。3、源程序的书写格式。4、C语言的风格。(二)数据类型及其运算1、C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。2、C运算符的种类、运算优先级和…

多少秒算长镜头_自从搞烘焙后,遇到烘焙模具换算,秒变数学渣...

从小学到大学我们学习的计量单位简直太多了,秒、米 、千克、开尔文、安培、坎德拉、摩尔......什么长度、体积、面积都知道怎么算,想想上学的时候我还是很强大的。 自从搞烘焙后,遇到烘焙模具换算,秒变数学渣...教程食谱中的一小勺…

怎样实现登录用户管理_如何编写程序实现图书管理系统里面的用户管理功能

上节课完成了库存管理功能。这节课来完成用户管理功能。编写用户管理功能用户管理主要是针对数据库表user进行维护,功能包括查询、新增、编辑和删除。特别注意,删除用户时要确保该用户的不存在订单记录。防止在查询订单时找不到对应的用户信息&#xff0…

rest开发_REST 101开发人员专用

rest开发本地代码执行 诸如C之类的高级语言中的函数将被汇编为Assembly中的过程 。 它们增加了一个间接级别,使我们不必考虑内存地址。 诸如Java之类的面向对象语言中的方法和多态性增加了另一种间接性 ,使我们不必考虑一组相似功能的特定变体。 尽管…

c语言 交互式电子白板案例,交互式电子白板教学案例

交互式电子白板教学案例交互式电子白板教学案例——电子白板让修改习作不再难钢城一小 熊莉红前言——转眼间,一年的时间稍瞬即逝。2012年的暑假,我们学校在每一个班级都安装了交互式电子白板,面对着这一新兴的产物,老师们跃跃欲试…

matlabrvctools主要功能及实际应用_【从业必备 | 收藏】ISO26262功能安全标准白皮书:关键组成、软硬件认证、测试过程、合规认证工具...

ISO26262功能安全标准白皮书:关键组成、软硬件认证、测试过程,合规的认证工具目 录背景ISO 26262的关键部分硬件组件认证软件组件认证“在实践中证明”的证据应用于现有流程测试工具认证下一步1. 背景随着各行业引进一系列产品设计和测试的标准化流…

JVM体系结构:JVM中的执行引擎

各位读者好! 在JVM系列的上一篇文章中,开发人员了解了虚拟机的ClassLoader和Runtime Data Areas组件。 本教程将帮助开发人员正确理解JVM中的执行引擎 。 1.简介 在继续之前,让我们看一下Java虚拟机及其基本特征。 1.1什么是Java虚拟机&…

python编程语言优缺点_原创001 第一次接触这个神奇而又无所不能的编程语言:Python...

***********************人生苦短,我用Python,不定期更新博客,小伙伴们记得关注******************** OK,说到Python这个语言,相信大家。对它还是有一点小陌生,对于编程语言来说,我们大家耳熟能…