`

请问如何用shell的正则表达式判断一个数是否为IP地址 Shell脚本 IP验证

阅读更多
本机多个IP
ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}'

首先,先用这个来着
CheckIPAddress()        
{
        echo $1 > /tmp/tmpserverip
        echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null
        if [ $? = 1 ];    then
                return 1
        else
                a=$(cut -d. -f1 /tmp/tmpserverip)
                b=$(cut -d. -f2 /tmp/tmpserverip)
                c=$(cut -d. -f3 /tmp/tmpserverip)
                d=$(cut -d. -f4 /tmp/tmpserverip)
    
                for loop in $a $b $c $d
                do
                        if [ $loop -ge 255 ] || [ $loop -le 0 ]; then
                                return 2
                        fi
                done
        fi
            
        return 0
} 


后来,改进了一下

CheckIPAddress()
{
        echo $1 |grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null
        if [ $? = 1 ];    then
                return 1
        else
                a=`echo $1 | awk -F. '{print $1}'`
                b=`echo $1 | awk -F. '{print $2}'`
                c=`echo $1 | awk -F. '{print $3}'`
                d=`echo $1 | awk -F. '{print $4}'`
                echo $a $b $c $d

                for loop in $a $b $c $d
                do
                        if [ $loop -ge 255 ] || [ $loop -le 0 ]; then
                                return 2
                        fi
                done
        fi

}


最初的时候,参考过下面的这些
grep "^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.$"

输入ip,检查其是否满足的ip书写规范,即不能大于255,不能有字母,和其他标点,参考网上的,自己搞了个如下,做个标记!@
echo -n 'Enter the Server-ip:'
        read BISSip
        echo $BISSip > /tmp/tmpserverip
        echo $BISSip|grep "^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$" > /dev/null
        num=$?
        if [ $num = 1 ]
        then
                echo error ip,please enter correct
       
        else
  {
        a=$(cut -d. -f1 /tmp/tmpserverip)
        b=$(cut -d. -f2 /tmp/tmpserverip)
        c=$(cut -d. -f3 /tmp/tmpserverip)
        d=$(cut -d. -f4 /tmp/tmpserverip)
   
        {
                if [ $a -ge 255 ]||[ $a -le 0 ]
                then
                        echo a:error ip
                else
                        echo 1 > /tmp/jack
                 fi
        }
   
        {
                if [ $b -ge 255 ]||[ $b -lt 0 ]
                then
                        echo b:error ip
        else
                        echo 1 >>/tmp/jack
        fi
   
        }
    
        { if [ $c -ge 255 ]||[ $c -lt 0 ]
                 then
                         echo c:error ip
                else
                        echo 1 >>/tmp/jack
                    fi
         }
   
         { if [ $d -ge 255 ]||[ $d -le 0 ]
                then
                        echo d:error ip
                else
                        echo 1 >> /tmp/jack
                fi
         }

0
0
分享到:
评论

相关推荐

    Shell脚本中通过正则表达式匹配IP地址

    在Shell脚本中使用正则表达式进行IP地址匹配时,需要构建一个精确的正则表达式模式,该模式应当能够匹配所有合法的IP地址,并拒绝不符合条件的字符串。由于IP地址的每组数字上限是255,因此需要构建一个能够匹配从0...

    Shell正则表达式验证IP地址

    ### Shell正则表达式验证IP地址 在计算机网络中,IP地址是用于唯一标识网络上每一台设备的重要信息。为了确保IP地址的有效性和正确性,通常需要对其进行验证。本文将介绍如何利用Shell脚本中的正则表达式来验证IP...

    正则表达式袖珍手册

    - **Shell Tools**:包括了在Unix shell工具中使用正则表达式的示例。 通过以上知识点的概览,读者可以了解到正则表达式的强大功能及其在不同编程环境下的应用方法。这对于提高文本处理能力、解决实际问题具有重要...

    Shell脚本判断IP地址是否合法的方法

    使用shell校验IP地址合法性 使用方法: 代码如下:[root@yang python]# bash check_ip.sh IP地址执行结果:返回值0校验合法,非0不合法。shell代码: 代码如下:[root@yang python]# vi check_ip.sh #!/usr/bin/...

    shell 正则表达式详细整理

    6. 匹配IP地址的正则表达式:可以验证字符串是否符合IP地址的标准格式。 7. 匹配中文字符和其他双字节字符的正则表达式:这对于处理多语言文本特别有用。 8. 匹配特定格式的字符串,如HTML标签、空行以及QQ号码等...

    IPv6Regex:PowerShell脚本将IPv6地址与测试IPv6正则表达式和.Net TryParse方法进行匹配

    IPv6正则表达式克里斯·沃里克(Chris Warwick),@ cjwarwickps,2015年10月此PowerShell脚本测试与IPv6地址的文本表示形式匹配的许多正则表达式。 该脚本还针对[System.Net.IpAddress] :: TryParse()方法运行...

    shell_ip_orangewgz_linux_shell_shell编程_shell脚本_

    在这个案例中,我们了解了如何用Shell脚本来判断IP地址的合法性,这是网络管理、自动化任务中不可或缺的一部分。同时,对"orangewgz"这样的定制Linux发行版的熟悉,也有助于提升对Linux生态系统的理解和适应能力。

    shell通过正则匹配ip地址实例代码

    接下来,我们通过一个简单的Shell脚本来演示如何使用egrep命令结合上述正则表达式来提取文本中的有效IPv4地址。 **示例代码**: ```bash #!/bin/bash # 定义一个包含多个IP地址的文本文件 cat <<EOF > ip.txt 112....

    Linux之shell中的正则表达式

    在Shell脚本中,可以结合`grep`、`sed`、`awk`等命令使用正则表达式,实现强大的文本处理功能。在日常工作中,无论是查找特定的日志条目还是自动化数据处理,正则表达式都将是你不可或缺的工具。

    一个shell面试题

    从给定的文件信息中,我们可以提炼出几个与Shell脚本相关的高级知识点,涉及到了文本处理、数学运算、正则表达式以及数据结构的应用。以下是详细的解析: ### 知识点一:使用Awk进行数学运算和文件操作 在第一个...

    linux grep与正则表达式使用介绍

    5. 使用`last | grep -c '^root' | sort | uniq -c`来统计root用户登录的主机IP地址的次数。 6. 利用正则表达式来匹配特定数字范围: - `[0-9]`:匹配0-9 - `[1-9][0-9]`:匹配10-99 - `1[0-9][0-9]`:匹配100-...

    Shell脚本实现IP地址合法性判断

    本文将详细讨论如何使用Shell脚本来实现IP地址的合法性判断。IP地址是由四个十进制数值组成,每个数值范围从0到255,用点号分隔,总共32位。通过编写一个微型脚本,我们可以检查输入的字符串是否符合IP地址的标准...

    Shell脚本中获取本机ip地址的3个方法

    `sed -n '/inetaddr/s/^[^:]*:\([0-9.]\{7,15\}\).*/\1/p'`: 使用正则表达式匹配`inetaddr`后面的IP地址,并打印出来。 - `/inetaddr/`表示寻找包含`inetaddr`的行。 - `s/^[^:]*:\([0-9.]\{7,15\}\).*/\1/`表示...

    shell脚本正则匹配文件中的Email并写入到文件中代码分享

    通过本文的学习,我们不仅了解了如何编写一个简单的Shell脚本来匹配和提取文件中的Email地址,还学习了一些其他的实用正则表达式。这些技巧对于日常的数据处理工作非常有用。掌握了这些基本概念和技术后,你可以更...

    第二十四章:shell脚本-正则、grep、sed、awk三剑客1

    本文详细介绍了 shell 脚本中的正则表达式以及 grep、sed 和 awk 的基本用法。这些工具在日常的 Linux 运维工作中扮演着极其重要的角色,能够极大地提升工作效率。通过掌握这些工具的使用方法,你可以更加高效地处理...

    Linux云计算之Shell脚本.zip

    04、编写匹配ip地址正则表达式.mp4 05、ps命令.mp4 06、awk数组.mp4 07、for循环结构.mp4 08、Sort命令.mp4 09、binlog日志.mp4 10、shell循环结构.mp4 11、数据增量备份脚本代码.mp4 12、DNS服务.mp4 13、重定向....

    shell模糊匹配与正则详解

    以下是一个示例,演示如何使用正则表达式检测文件名是否符合特定规范: ```bash #!/bin/bash RED='\033[31m' # 红色颜色定义 GREEN='\033[32m' # 绿色颜色定义 awk '{printf("%s",$0)}' $1 | egrep "^#[[:digit:]]...

Global site tag (gtag.js) - Google Analytics