方法一:使用Linux下的nmap命令
nmap是Linux,FreeBSD,UNIX,Windows下的网络扫描和嗅探工 具包,其基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操 作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。
例如:
nmap -sP -n 172.16.2.0/24 | cut -d" " -f2 | awk '/172/' | sort
列出了这个网段存活的ip
参考:http://dev.firnow.com/course/3_program/shell/shelljs/20100527/205583.html
#!/bin/bash
# FILE: IpSearch.sh
#
# USAGE: ./IpSearch.sh
#
# DESCRIPTION: Use nmap to search ip lively
oldpwd=`pwd`
cd /home/xulei
`nmap -sP -n 173.26.100.0/24 | cut -d" " -f2 | awk '/173/' | sort > new.173`
if [ -e "database.173" ];then
comm new.173 database.173 | awk '{sub(/^[[:blank:]]*/,"",$0);print $0}' > tmp.173
rm new.173
mv tmp.173 database.173
else
mv new.173 database.173
fi
PWD=$oldpwd
把这个shell加进crontab
:~$ crontab -e
# m h dom mon dow command
* */1 * * * /home/xulei/IpSearch.sh
方法二:使用ping命令 根据返回值判断
#!/bin/bash
ping -q -c 1 192.168.1.116 -W 2
if (( $? == 1 )) ;
then
echo "192.168.1.116 is unlively"
else
echo "192.168.1.116 is lively"
fi
方法二需要改进添加这个网段的循环
参考:http://infaq.51099.com/chengxusheji/Shell/200809/29-12275.html