shell检查ip是否合规

前提:

1、本脚本基本基于网上流传的版本,但是做了优化。
2、现在可以检测:
3、为了好区分,输出中添加颜色

10.10.10.10       合格
10.10.10.1000     不合格
0.10.10.10/32     不合格
10.00.10.10       不合格
10.000.10.10      不合格

脚本如下

[root@node1 ~]# cat check_ip.sh
#!/bin/bash
set -e
function check_ip()
{
    # 去掉可能的/24 /32
    IP=$(echo $1|cut -d "/" -f 1)
    # 保证格式合格
    if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then
        # 保证首个数字大于1
        res1=$(echo $IP|awk -F . '$1>=1&&$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')
        if [ "X${res1}" == "X" ]; then
            echo -e "\033[41;30m IP $IP not available! \033[0m"
            return 1
        fi
        # 保证不出现01这种数字
        res2=$(echo $IP |awk -F . '{for(i=1;i<=NF;i++){if($i~"^0" && $i !=0){print $i}}}')
        if [ "X$res2" != "X" ];then
            echo -e "\033[41;30m IP $IP not available! \033[0m"
            return 1
        fi
        # 保证不出现00/000这种
        res3=$(echo $IP |awk -F . '{for(i=1;i<=NF;i++){if($i=="00"||$i=="000"){print $i}}}')
        if [ "X$res3" != "X" ];then
            echo -e "\033[41;30m IP $IP not available! \033[0m"
            return 1
        else
            echo -e "\033[42;30m IP:$IP is available! \033[0m"
        fi
    else
        echo -e "\033[43;30m IP:$IP format error! \033[0m"
        return 1
    fi
}
check_ip $1

测试结果

[root@node1 ~]# sh check_ip.sh 10.10.10.10
 IP:10.10.10.10 is available!
[root@node1 ~]# sh check_ip.sh 10.10.10.1000
 IP:10.10.10.1000 format error!
[root@node1 ~]# sh check_ip.sh 0.10.10.10/32
 IP 0.10.10.10 not available!
[root@node1 ~]# sh check_ip.sh 10.00.10.10
 IP 10.00.10.10 not available!
[root@node1 ~]# sh check_ip.sh 10.000.10.10
 IP 10.000.10.10 not available!

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值