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 相关文章推荐
python实现给字典添加条目的方法
Sep 25 Python
使用graphics.py实现2048小游戏
Mar 10 Python
python通过imaplib模块读取gmail里邮件的方法
May 08 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
Python线性回归实战分析
Feb 01 Python
python实现关键词提取的示例讲解
Apr 28 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Python实现查找数据库最接近的数据
Jun 08 Python
python map比for循环快在哪
Sep 21 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
May 23 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常见的魔术方法详解
2014/12/25 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
php正则判断是否为合法身份证号的方法
2017/03/16 PHP
PHP _construct()函数讲解
2019/02/03 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
javascript实现yield的方法
2013/11/06 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
python实现人脸识别代码
2017/11/08 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
中学生运动会入场词
2014/02/12 职场文书
建房协议书
2014/04/11 职场文书
国庆节慰问信
2015/02/15 职场文书
捐书仪式主持词
2015/07/04 职场文书
中秋晚会致辞
2015/07/31 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技