#!/bin/bash

#It's written by caibingsen

#!/bin/bash

#It's written by caibingsen

#date:2016-03-15 


#while设置成死循环,在输入的ip不符合条件时,重新输入

while :

do

read -p "请输入要判断的ip地址:" ip

#判断输入的ip地址是否仅由数字和点组成,并将值赋给m。

#判断输入的ip地址的小数点的个数,复制给n

m=`echo $ip |sed 's/[0-9.]//g'`

n=`echo $ip |sed 's/[0-9]//g'|wc -c`

#截取ip地址的四个数字的部分,并分别复制。

n1=`echo $ip |cut -d'.' -f1`

n2=`echo $ip |cut -d'.' -f2`

n3=`echo $ip |cut -d'.' -f3`

n4=`echo $ip |cut -d'.' -f4`

#第一个if通过m和n来判断输入的ip是否符合要求

if [ -z $m ] && [ $n -eq 4 ] && [ -n $n1 ] && [ -n $n2 ] && [ -n $n3 ] && [ -n $n4 ];then

#第二个if通过n1到n4来判断输入的范围是否符合要求。

if [ $n1 -ge 0 ] && [ $n1 -le 255 ] && [ $n2 -ge 0 ] && [ $n2 -le 255 ] && [ $n3 -ge 0 ] && [ $n3 -le 255 ] && [ $n4 -ge 0 ] && [ $n4 -le 255 ]

 then

  echo "ip正确"

  exit

 else

  echo "你输入的ip错误,请重新输入"

fi

else

   echo "你输入的ip错误,请重新输入"

fi

done