注:该脚本适合标准C类地址且不复杂的网络中.....
#!/bin/bash
# OS: Centos 6.8
# Author: Smile brother
# WeChat: 365860593
# Date: 2018年06月15日 周五 15:09:032
local_IP=`curl -s ident.me`
for i in `seq 1 255`
do
rpm -q nmap > /dev/null
if [ $? == 0 ];then
echo "nmap已安装,开始扫描该局域网内地址..."
nmap -sA 192.168.1.0/24 |awk -F "for " '{print $2}'|awk -F " " '{print $1}'|grep -v ^$ > 3.txt
opop=`cat 3.txt |wc -l`
echo -e "\n\n总共 $opop 个IP在线分别是:\n`cat 3.txt`"
echo -e "局域网网关: `route -n|egrep "^0.0"|awk -F " " '{print $2}'`"
echo -e "局域网DNS: `cat /etc/resolv.conf|awk -F "nameserver " '{print $2}'`"
echo -e "\e[31m外网IP: $local_IP \e[39m"
echo "其他均不在线..."
exit
else
echo "未安装nmap,按任意键开始安装...."
####### Press any key start ######
get_char(){
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
####### Press any key end ######
char=`get_char`
yum -y install nmap
echo -e "\n接下来开始扫描该局域网内地址..."
sleep 3
if [ $? == 0 ];then
echo -e "\n开始扫描,请稍等...."
nmap -sA 192.168.1.0/24 |awk -F "for " '{print $2}'|awk -F " " '{print $1}'|grep -v ^$ > 3.txt
op=`cat 3.txt |wc -l`
echo -e "\n\n总共 $op 个IP在线分别是:\n`cat 3.txt`"
echo -e "网关为: `route -n|egrep "^0.0"|awk -F " " '{print $2}'`"
echo -e "\e[31m外网IP: $local_IP\e[39m"
echo "其他均不在线..."
exit
else
echo "扫描出了点问题..."
fi
fi
done