之前写过一个简单的脚本检测当前网段中主机状态的脚本,内容如下:
#! /bin/bash #ping check host status for ip in `seq 1 255`; do { ping -c 1 192.168.214.$ip > /dev/null 2>&1 if [ $? -eq 0 ]; then echo 192.168.214.$ip up >> /sh/hostsup.txt else echo 192.168.214.$ip down >> /sh/hostsdown.txt fi } done echo 'ok' exit
执行的时候耗时太长,效果很差,因为在循环里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是一个非常强大的工具,它的功能有很多:比如端口扫描,操作系统探测,服务探测等,这里只针对主机探测功能做理解,其他功能留待以后慢慢研究。