CENTOS 7 内网网段在用IP地址检测Shell脚本优化版

脚本内容

#!/bin/bash

#############################################################################
# 用途:网段IP地址检测
# 作者:Dylan
# 日期:2019年10月31日 11:56
#############################################################################

#############################################################################
# 定义颜色输出
#############################################################################
COLOR_TEXT() {
  echo -e " \e[0;$2m$1\e[0m"
}

ECHO_RED() {
  echo $(COLOR_TEXT "$1" "31")
}

ECHO_GREEN() {
  echo $(COLOR_TEXT "$1" "32")
}

ECHO_YELLOW() {
  echo $(COLOR_TEXT "$1" "33")
}

ECHO_BLUE() {
  echo $(COLOR_TEXT "$1" "34")
}

#############################################################################
# 变量定义
#############################################################################
# IP 地址段
NETWORK_SEGMENT=192.168.100
# 检测次数
PING_COUNT=3
# 开始检测范围:默认从1开始
IP_START=1
# 结束检测范围:默认从255结束
IP_STOP=255
# 输出横线
LINE='-----------------------------------------------------------------------'

#############################################################################
# 开始检测
#############################################################################
echo ${LINE}
ECHO_YELLOW "开始检查:`date`"
echo ${LINE}

# 开始循环检测
while [ ${IP_START} -lt ${IP_STOP} ];do
  FULL_IP=${NETWORK_SEGMENT}.${IP_START}
  echo ${LINE}
  echo "IP地址 [ ${FULL_IP} ] 开始检测!"
  echo ${LINE}
  /usr/bin/ping ${FULL_IP} -c ${PING_COUNT} >/tmp/ping_tmp.txt
  sleep 1
  SUCCESS_PING=`tail -2 /tmp/ping_tmp.txt |head -1 |awk -F, '{print$2}' |cut -c 2-2`

  # 输出使用情况
  if [ ${SUCCESS_PING} -gt 0 ];then
    echo -e "IP地址 [ \e[0;32m${FULL_IP}\e[0m ] 正在使用!"
    echo "${FULL_IP}" >> /tmp/ip_use.txt
  else
    echo -e "IP地址 [ \e[0;31m${FULL_IP}\e[0m ] 没有使用!"
    echo "${FULL_IP}" >> /tmp/ip_not_use.txt
  fi

  # 自加1开始下一个
  IP_START=$((IP_START+1))
done

# 检测完成
ECHO_YELLOW "检查结束:`date`"
echo ${LINE}
ECHO_YELLOW "在用IP列表:"
echo ${LINE}
cat /tmp/ip_use.txt
echo ${LINE}
ECHO_YELLOW "没用IP列表:"
cat /tmp/ip_not_use.txt
echo ${LINE}
ECHO_YELLOW "更多详情可以查看文件:"
echo ${LINE}
echo "在用IP地址列表文件:/tmp/ip_use.txt"
echo "没用IP地址列表文件:/tmp/ip_not_use.txt"

脚本执行效果:

猜你喜欢

转载自www.cnblogs.com/Dy1an/p/11770552.html