之前写过一个简单的脚本检测当前网段中主机状态的脚本,内容如下:

#! /bin/bash
#ping check host status trap "exit" 2
sping() {
  ping -c 1 -W 1 192.168.214.$1 &> /dev/null
   if [ $? -eq 0  ]; then
        echo "192.168.214.$1 up!"
   else
        echo "192.168.214.$1 down!"
   fi
}
for IP in {1..255}; do
  sping $IP
done

执行的时候耗时太长,效果很差,因为在循环里ping指令要执行几百次,而且ping检测执行的过程本身就比较慢,所有整个脚本执行结束需要很长的时间。

可以通过另一种工具来检测主机状态。那就是 nmap,它的执行效率非常高。

nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包,nmap几乎是黑客的必备工具了,

nmap基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。

nmap的简单使用方法:

  • nmap -sP :(Ping扫描)

该选项告诉nmap仅仅 进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机。 没有进一步的测试 (如端口扫描或者操作系统探测)。系统管理员往往也很喜欢这个选项。 它可以很方便地得出 网络上有多少机器正在运行或者监视服务器是否正常运行。常常有人称它为 地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应

  eg:

[root@yufu sh]# nmap -sP 192.168.214.0/

Starting Nmap 5.51 ( http://nmap.org ) at 2018-03-31 03:52 CST
Nmap scan report for 192.168.214.1
Host is up (.00052s latency).
MAC Address: :::C0:: (VMware)
Nmap scan report for 192.168.214.2
Host is up (.00024s latency).
MAC Address: :::E8::5C (VMware)
Nmap scan report for 192.168.214.187
Host is up.
Nmap scan report for 192.168.214.190
Host is up (.00051s latency).
MAC Address: :0C::8A:DC: (VMware)
Nmap scan report for 192.168.214.254
Host is up (.00060s latency).
MAC Address: :::EE:D2: (VMware)
Nmap done: IP addresses ( hosts up) scanned in 11.98 seconds

nmap是一个非常强大的工具,它的功能有很多:比如端口扫描,操作系统探测,服务探测等,这里只针对主机探测功能做理解,其他功能留待以后慢慢研究。

linux主机状态检测方式的更多相关文章

  1. linux系统状态检测命令

    1.ifconfig命令 ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”. 使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时 ...

  2. Linux 系统状态检测命令

    介绍快速查看Linux系统运行状态的能力(网络网卡.系统内核.系统负载.内存使用情况.启用终端数量.历史登录记录.命令执行记录.救援诊断)等命令使用方法 1.ifconfig  用于获取网卡配置和网络 ...

  3. Linux | 系统状态检测

    ifconfig ifconfig 命令用于获取网卡配置与网络状态等信息,格式 ifconfig[网络设备][参数] 使用 ifconfig 命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查 ...

  4. Linux系统状态检测

    基于Red Hat Enterprise Linux 7.5 1.ifconfig ifconfig用于获取和配置网络接口的网络参数,格式为“ifconfig [网络设备] [参数]” 参数: add ...

  5. Linux主机入侵检测

    检查系统信息.用户账号信息 ● 操作系统信息 cat /proc/version 用户信息 用户信息文件 /etc/passwd root:x:0:0:root:/root:/bin/bash 用户名 ...

  6. Linux - Port 端口检测方式

    ss 和 netstat 区别 netstat是遍历/proc下面每个PID目录: ss直接读/proc/net下面的统计信息. 所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多 ne ...

  7. Linux分享笔记:系统状态检测命令小结

    作为一名合格的运维人员,要能很好地了解Linux服务器,要能熟练查看Linux系统的运行状态.以下是常用到的Linux系统状态检测命令. 1. ifconfig:用于获取网卡配置与网络状态等信息.通常 ...

  8. linux7下修改主机名的方式

    在基于linux发行版的众多linux kernel 3.0以上,包括rhel7,centos7等提供多种修改linux主机名的方式 1.通过编辑/etc/hostname文件 2.命令hostnam ...

  9. 批量ping 检测linux主机是否可以通

    批量ping 检测linux主机是否可以通 # 1.配置列表 [root@db137 liweiwie]# cat /home/dbatlbb/script/liweiwie/ping_ip.txt ...

随机推荐

  1. 洛谷P5280 [ZJOI2019]线段树

      https://www.luogu.org/problemnew/show/P5280 省选的时候后一半时间开这题,想了接近两个小时的各种假做法,之后想的做法已经接近正解了,但是有一些细节问题理不 ...

  2. list倒序删除

    public static void main(String[] args) { List<Integer> nums = new ArrayList<Integer>(); ...

  3. @async 方法上添加该注解实现异步调用的原理

    在我们使用spring框架的过程中,在很多时候我们会使用@async注解来异步执行某一些方法,提高系统的执行效率.今天我们来探讨下 spring 是如何完成这个功能的. spring 在扫描bean的 ...

  4. Hadoop实战:微博数据分析

    项目需求 自定义输入格式,将明星微博数据排序后按粉丝数 关注数 微博数 分别输出到不同文件中. 数据集 下面是部分数据,猛戳此链接下载完整数据集 数据格式: 明星   明星微博名称    粉丝数    ...

  5. webservice初识,SOAP1.1版本

    客户端与服务端模式,非web端发布 1.1      [Jax-ws第一个例子] 1.1.1     第一步:服务端开发 编写SEI(Service Endpoint Interface),SEI在w ...

  6. Cause: java.sql.SQLException: 无法转换为内部表示(Mybatis)

    公司开发档案系统使用框架:Spring+Struts2+Mybatis+EasyUI,在开发过程中出现sql异常:“Cause: java.sql.SQLException: 无法转换为内部表示”,错 ...

  7. 《C#高效编程》读书笔记04-使用Conditional特性而不是#if条件编译

    #if/#endif语句常用来基于同一份源代码生成不同的编译结果,其中最常见的就是debug版和release版.但是这在实际应用中并不是非常友好,因为它们容易被滥用,其代码也难以理解或调试. C#为 ...

  8. Handler: Service中使用Toast

    Handler 的使用在 android App 开发中用的颇多,它的作用也很大,使用 Handler 一般也会使用到多线程,相信大家对 Handler 不会陌生,在这里,重点说一下 android ...

  9. Employees Earning More Than Their Managers

    The Employee table holds all employees including their managers. Every employee has an Id, and there ...

  10. hibernate课程 初探单表映射1-9 创建关系映射文件

    创建关系映射文件:(把实体类映射成一个表) 1 右键src==>new==>other==>hibernate==>hbm.xml==>Student==>Fini ...