shell检查ip合法性脚本

这上面找个shell检查ip的脚本, 发现都是不知道从哪里抄的,各种bug,对于编程(暂且把写个脚本也叫编程吧),对于做IT的人,应该敬畏并加已测试,考虑全面,降低千行bug率,可以参考,但别只是c+v。

此脚本支持交互方式和直接方式检测IP地址合法性,很久以前写的了,放上来大家帮忙看看,还望指教。

#!/usr/bin/env bash
# ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
# Function :CentOS7.X 密钥生成及发布
# Platform :RedHatEL7.x Based Platform
# Version  :0.0.2
# Date     :2013-05-26
# Author   :mugoLH
# Contact  :hxsaj@126.com
# Company  :
# depend on:
# ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
set -e
#  函数列表 Function list
########## ########## ########## ########## ########## ########## #
info_p(){  printf "\e[1;32;40m%-12s %-1s\n\e[0m" "${1}" "${2}"  >&1 ;}
tips_p(){  printf "\e[1;36;40m%-12s %-1s\n\e[0m" "${1}" "${2}"  >&1 ;}
error_p(){ printf "\e[1;35;40m%-12s %-1s\n\e[0m" "${1}" "${2}"  >&1 ;}

#  检查函数
check_ip(){
	if [[ $(echo "${1}" | awk -F "." '{print NF}') -eq 4 ]] && echo "${1}" | grep -wqe "[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}";then
		IP_PS=($(echo ${1} | awk -F "." '{print$1" "$2" "$3" "$4}'))
		check_i(){
			if [ ${1} -lt ${2} ] || [ ${1} -gt ${3} ];then
				error_p "[ ERROR   ]: ${HOST_IP} 不合法"
                exit
			fi
		}
		#  检查分段,IP首段限制在1-240,其他段限制在0-255
		check_i ${IP_PS[0]} 1 239
		for i in $(seq 1 3);do
			check_i ${IP_PS[${i}]} 0 255
		done
        info_p  "[ SUCCESS ]: ${HOST_IP} 合法"
	else
		error_p "[ ERROR   ]: ${HOST_IP} 不合法"
	fi

}

#  程序主体
if [[ $# -eq 0 ]];then
	read -p "请输入IP地址:" HOST_IP
	check_ip ${HOST_IP}

elif [[ $# -eq 1 ]];then
	HOST_IP=${1}
	check_ip ${HOST_IP}
fi

脚本对ip的检查根据互联网IP分段,A类地址开头为1-239,IP正确返回合法信息,IP不正确返回不合法提示

以下是示例:

 

欢迎交流讨论!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值