python和shell实现的校验IP地址合法性脚本分享


Posted in Python onOctober 23, 2014

一、python校验IP地址合法性

执行效果:

python和shell实现的校验IP地址合法性脚本分享

python代码:

 

[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 i 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不合法。

python和shell实现的校验IP地址合法性脚本分享

shell代码:

[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
Python 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
python 七种邮件内容发送方法实例
Apr 22 Python
详解Python中的正则表达式的用法
Apr 09 Python
Python下的Softmax回归函数的实现方法(推荐)
Jan 26 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 Python
python实现滑雪者小游戏
Feb 22 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 Python
探寻python多线程ctrl+c退出问题解决方案
Oct 23 #Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 #Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 #Python
使用Python开发windows GUI程序入门实例
Oct 23 #Python
手动实现把python项目发布为exe可执行程序过程分享
Oct 23 #Python
python文件操作整理汇总
Oct 21 #Python
Python中input和raw_input的一点区别
Oct 21 #Python
You might like
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
python中常用检测字符串相关函数汇总
2015/04/15 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
django的settings中设置中文支持的实现
2019/04/28 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
电影建党伟业观后感
2015/06/01 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
golang内置函数len的小技巧
2021/07/25 Golang
SQL写法--行行比较
2021/08/23 SQL Server