您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

Shell正则表达式验证IP地址

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   这篇文章主要介绍了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

  }

  最初的时候,参考过下面的这些

   代码如下:

  grep "^([01]?dd?|2[0-4]d|25[0-5]).([01]?dd?|2[0-4]d|25[0-5]).([01]?dd?|2[0-4]d|25[0-5]).([01]?dd?|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

  }