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多线程和队列管理shell程序
Aug 04 Python
Python实时获取cmd的输出
Dec 13 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python3对接mysql数据库实例详解
Apr 30 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
Django+zTree构建组织架构树的方法
Aug 21 Python
wxPython实现分隔窗口
Nov 19 Python
Python面向对象封装操作案例详解
Dec 31 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
Feb 26 Python
Python爬虫入门有哪些基础知识点
Jun 02 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 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中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
php实现网页端验证码功能
2017/07/11 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
javascript中的几个运算符
2007/06/29 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
通过C++学习Python
2015/01/20 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Python 如何展开嵌套的序列
2020/08/01 Python
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
爱情检讨书大全
2014/01/21 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
小学一年级学生评语
2014/04/22 职场文书
活动总结的格式
2014/05/07 职场文书
师范生求职信
2014/06/14 职场文书
拓展训练激励口号
2014/06/17 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
辞职信标准格式
2015/02/27 职场文书
台风停课通知
2015/04/24 职场文书
结婚仪式主持词
2015/06/29 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL