python与shell校验IP地址合法性

简介:

python校验IP地址合法性

执行效果:

wKiom1MN5XDDyM3rAAEwJDCIJR0946.jpg


python代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@yang python] # vi check_ip.py
#!/usr/bin/python
import  os,sys
def  check_ip(ipaddr):
         import  sys
         addr = ipaddr.strip().split( '.' )    #切割IP地址为一个列表
         #print addr
         if  len (addr) ! =  4 :    #切割后列表必须有4个参数
                 print  "check ip address failed!"
                 sys.exit()
         for  in  range ( 4 ):
                 try :
                         addr[i] = int (addr[i])    #每个参数必须为数字,否则校验失败
                 except :
                         print  "check ip address failed!"
                         sys.exit()
                 if  addr[i]< = 255  and  addr[i]> = 0 :     #每个参数值必须在0-255之间
                         pass
                 else :
                         print  "check ip address failed!"
                         sys.exit()
                 i + = 1
         else :
                 print  "check ip address success!"
if   len (sys.argv)! = 2 :   #传参加本身长度必须为2
         print  "Example: %s 10.0.0.1 " % sys.argv[ 0 ]
         sys.exit()
else :
         check_ip(sys.argv[ 1 ])    #满足条件调用校验IP函数

shell校验IP地址合法性

执行校果:

  返回值0校验合法,非0不合法。

wKioL1MN5UqAINbnAAD4BrmI99w080.jpg


shell代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@yang python] # vi check_ip.sh
#!/usr/bin/sh
CheckIPAddr()
{
echo  $1| grep  "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$"  /dev/null ;
#IP地址必须为全数字
         if  [ $? - ne  0 ]
         then
                 return  1
         fi
         ipaddr=$1
         a=` echo  $ipaddr| awk  -F .  '{print $1}' `    #以"."分隔,取出每个列的值
         b=` echo  $ipaddr| awk  -F .  '{print $2}' `
         c=` echo  $ipaddr| awk  -F .  '{print $3}' `
         d=` echo  $ipaddr| awk  -F .  '{print $4}' `
         for  num  in  $a $b $c $d
         do
                 if  [ $num -gt 255 ] || [ $num -lt 0 ]      #每个数值必须在0-255之间
                 then
                         return  1
                 fi
         done
                 return  0
}
if  [ $ # -ne 1 ];then            #判断传参数量
         echo  "Usage: $0 ipaddress."
         exit
else
CheckIPAddr $1
fi






     本文转自杨云1028 51CTO博客,原文链接http://blog.51cto.com/yangrong/1363957:,如需转载请自行联系原作者





相关文章
|
1月前
|
缓存 API 定位技术
使用Python调用百度地图API实现地址查询
使用Python调用百度地图API实现地址查询
90 0
|
1月前
|
网络协议 网络安全 数据库
python验证公网ip与内网ip
python验证公网ip与内网ip
25 0
|
1月前
|
数据采集 安全 数据安全/隐私保护
python怎么获取免费代理IP
python怎么获取免费代理IP
44 0
|
3月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
60 0
|
2月前
|
网络协议 网络性能优化 Python
在Python中进行TCP/IP网络编程
在Python中进行TCP/IP网络编程
33 6
|
4月前
|
数据采集 监控 Python
Python创建代理IP池详细教程
Python创建代理IP池详细教程
|
1月前
|
数据采集 Web App开发 数据安全/隐私保护
Python爬虫-使用代理伪装IP
介绍代理,设置代理,使用代理伪装IP案例
23 0
|
1月前
|
Python
Python中如何判断两个对象的内存地址是否一致?
Python中如何判断两个对象的内存地址是否一致?
17 0
|
1月前
|
存储 Linux iOS开发
使用Python自动修改电脑的静态IP地址
使用Python自动修改电脑的静态IP地址
22 0
|
1月前
|
Web App开发 安全 定位技术
关于使用 Python 和 Selenium chrome driver 访问 url 时修改 source ip 的问题
关于使用 Python 和 Selenium chrome driver 访问 url 时修改 source ip 的问题
57 0