教你如何用 Linux Shell脚本判断IP是否合法(多种方法)

教你如何用 Linux Shell脚本判断IP是否合法(多种方法)


最新:

达内新课程“网络运维”免费火热开讲,点击文末“

阅读原文

”快速免费抢听新课!

教你如何用 Linux Shell脚本判断IP是否合法(多种方法)

来自 | 李振良的技术博客



链接 |

 

http://t.cn/RQEqmBE



从运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考。



思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式



方法1:



#!/bin/bash  

# blog: http://lizhenliang.blog.51cto.com  

function

check_ip

() {      IP=

$1

     VALID_CHECK=$(

echo

$IP

|awk -F.

"$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}"

)      

if

echo

$IP

|grep -E

"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"

>/dev/null;

then

         

if

[

${VALID_CHECK:-no}

==

"yes"

];

then

             

echo

"IP

$IP

available."

         

else

             

echo

"IP

$IP

not available!"

         

fi

     

else

         

echo

"IP format error!"

     

fi

  }  

# Example  

check_ip

192.168

.

1.1

 

check_ip

256.1

.

1.1

方法2:



#!/bin/bash  

# blog: http://lizhenliang.blog.51cto.com  

function

check_ip

() {      IP=

$1

     

if

[[

$IP

=~ ^[

0

-

9

]{

1

,

3

}\.[

0

-

9

]{

1

,

3

}\.[

0

-

9

]{

1

,

3

}\.[

0

-

9

]{

1

,

3

}$ ]];

then

         FIELD1=$(

echo

$IP

|cut -d.

-f

1)          FIELD2=$(

echo

$IP

|cut -d.

-f

2)          FIELD3=$(

echo

$IP

|cut -d.

-f

3)          FIELD4=$(

echo

$IP

|cut -d.

-f

4)          

if

[

$FIELD1

-le

255

-a

$FIELD2

-le

255

-a

$FIELD3

-le

255

-a

$FIELD4

-le

255

];

then

             

echo

"IP

$IP

available."

         

else

             

echo

"IP

$IP

not available!"

         

fi

     

else

         

echo

"IP format error!"

     

fi

  }  

# Example  

check_ip

192.168

.

1.1

 

check_ip

256.1

.

1.1

加个循环,如果错误则重新输入,直到正确:

#!/bin/bash  

# blog: http://lizhenliang.blog.51cto.com  

function

check_ip

() {      local IP=

$1

     VALID_CHECK=$(

echo

$IP

|awk -F.

"$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}"

)      

if

echo

$IP

|grep -E

"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"

>/dev/null;

then

         

if

[

$VALID_CHECK

==

"yes"

];

then

         

echo

"IP

$IP

 available!"

             

return

0

         

else

             

echo

"IP

$IP

not available!"

             

return

1

         

fi

     

else

         

echo

"IP format error!"

         

return

1

     

fi

  }  

while

true

;

do

     

read

-p

"Please enter IP: "

IP      check_ip

$IP

     [ $?

-eq

0

] &&

break

 

done

网络运维应用广泛,网络工程师需求量大,

而且

可以不分地域就业,未来发展空间大,入门更是容易简单,也可以进一步进阶为Linux运维工程师,甚至更高!可以说网络工程师是企业中必不可少的人才,也是需求量最大,分布最广的人才!



好消息来啦!

达内专为零基础童鞋打造的第一款低门槛

入门

的最新课程——“网络运维”火爆来袭!

只要想学习,任何人都能轻松入

门!



网络运维工程

免费训练营火热来袭啦,

5天课程免费听

网络工程技术干货,行业发展,前景动态等等,通通免费分享,寻找属于你的努力方向,点击文末“

阅读原文

”即可免费报名听课~

?

训练营免费课程详情

时间



1月25日 -12月31日 (为期5天免费听)



地点

全国达内各教学中心





课程内容

一、网工行业价值、发展前景:



1.什么是网络工程;

2.网络工程对个人和企业的价值;

3.网络工程就业岗位;

4.网络工程的行业薪资水平。



二、虚拟化技术:

1. 什么是虚拟化;

2. 安装VMware Workstation;

3. 创建及管理虚拟机;

4.使用LiveCD启动深度Linux系统。



三、Windows一日畅游:

1.计算机、操作系统介绍;

2.使用虚拟计算机;

3.Windows安装及使用。



四、Windows双机互连:

1.“计算机-网络”拓扑类型;

2.网线介绍、线材分类;

3.Windows网络配置、双机互连。



五、Linux一日畅游:

1.计算机、操作系统介绍;

2.使用虚拟计算机;

3.CentOS Linux安装及使用。

报名方式

点击“

阅读原文

”或者

后台留言“

姓名+联系方式+所在地城市

"报名



适合人群

1、没有任何经验,并且希望从事网络工程行业的人群;

2、应届毕业生、实习生;

3、工作遇到瓶颈期的在职人员。

4、学软件开发或运维课程吃力的童鞋。

本次免费训练营将开放中心教室供大家学习,座位有限,先报先得。





网络运维工程

1月免费训练营课程由行业大牛亲自免费分享、授课,

全程免费

,点击文末“

阅读

原文

”或

长按下方二维码

即可报名,达内技术大牛手把手教你从零开始学习网络工程,进阶IT行业!

名额有限,火速抢报

给想改变的你一个免费尝试的机会

教你如何用 Linux Shell脚本判断IP是否合法(多种方法)

机会永远都是留给有准备的人!



教你如何用 Linux Shell脚本判断IP是否合法(多种方法)

申明:内容来源于网络,侵删。

教你如何用 Linux Shell脚本判断IP是否合法(多种方法)

教你如何用 Linux Shell脚本判断IP是否合法(多种方法)
点击“

阅读原文

”抢报本月最新免费课程!