之前写过一个简单的脚本检测当前网段中主机状态的脚本,内容如下:
#! /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是一个非常强大的工具,它的功能有很多:比如端口扫描,操作系统探测,服务探测等,这里只针对主机探测功能做理解,其他功能留待以后慢慢研究。