• 一段可以验证给定的IP地址字符串是否合法的bash脚本


    #!/bin/bash
    validate_ipaddress() {
      declare 
    -i iPart1
      declare 
    -i iPart2
      declare 
    -i iPart3
      declare 
    -i iPart4

      inputip
    =$1
      
    # validate it
      if [ -$inputip ]; then
        
    return 1
      fi

      echo 
    $inputip | grep --"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
      
    if [ $? -ne 0 ]; then
        
    return 1
      fi

      
    # separate the ip address
      ippart1=${inputip%%.*}
      inputip
    =${inputip#*.}
      ippart2=${inputip%%.*}
      inputip
    =${inputip#*.}
      ippart3=${inputip%%.*}
      ippart4
    =${inputip#*.}

      # check whether the ip number begins with zero, that is wrong syntax
      # if the string begins with zero, bash cannot convert it into integer correctly
      # ipart1 and ipart4 cannot be zero

      if echo $ippart1 | grep -"^0" || echo $ippart4 | grep -"^0"; then
        
    return 1
      fi

      
    if [ $ippart2 != "0" ] && echo $ippart2 | grep -"^0"; then
        
    return 1
      fi

      
    if [ $ippart3 != "0" ] && echo $ippart3 | grep -"^0"; then
        
    return 1
      fi
             
      iPart1
    =ippart1
      iPart2
    =ippart2
      iPart3
    =ippart3
      iPart4
    =ippart4
      
    if [ $iPart1 -gt 254 ] || [ $iPart2 -gt 254 ] || [ $iPart3 -gt 254 ] || [ $iPart4 -gt 254 ]; then
        
    return 1
      fi

      
    return 0
    }

    if validate_ipaddress $1; then
      echo 
    "legal"
    else
      echo 
    "illegal"
    fi

     注意在验证IP地址是否合法的RE中,使用了{m,n}这样的语法,这样写grep是要加-E option的,因为这是扩展语法,有些UNIX和Linux上的grep,不加-E(基本模式,非扩展模式)的时候也支持这个语法,但要写成\{m,n\}这样的样式

  • 相关阅读:
    Python数值计算:一 使用Pylab绘图(2)
    Python数值计算:一 使用Pylab绘图(1)
    Gromacs处理amino acid residues小结
    实用正则表达式匹配和替换
    将Word转为带书签的PDF
    QT在windows下实现截屏操作并保存为png图片
    VMware虚拟机无法识别U盘解决方案
    C/C++/Qt 统计运行时间
    ffmpeg 中 swscale 的用法
    用qt代码怎样编写图片保存格式[qt4.6]
  • 原文地址:https://www.cnblogs.com/super119/p/1910017.html
Copyright © 2020-2023  润新知