判断局域网内哪些地址在线和不在线并记录在线IP

注:该脚本适合标准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

猜你喜欢

转载自www.cnblogs.com/smlile-you-me/p/9187398.html
今日推荐