linux主机状态检测方式

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

#! /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/24

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 (0.00052s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.214.2
Host is up (0.00024s latency).
MAC Address: 00:50:56:E8:27:5C (VMware)
Nmap scan report for 192.168.214.187
Host is up.
Nmap scan report for 192.168.214.190
Host is up (0.00051s latency).
MAC Address: 00:0C:29:8A:DC:58 (VMware)
Nmap scan report for 192.168.214.254
Host is up (0.00060s latency).
MAC Address: 00:50:56:EE:D2:04 (VMware)
Nmap done: 256 IP addresses (5 hosts up) scanned in 11.98 seconds

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

原文地址:https://www.cnblogs.com/anay/p/8678297.html