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解析xml文件实例分享
Dec 04 Python
今天 平安夜 Python 送你一顶圣诞帽 @微信官方
Dec 25 Python
使用Python从零开始撸一个区块链
Mar 14 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
python实现数字炸弹游戏
Jul 17 Python
零基础学python应该从哪里入手
Aug 11 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
Dec 03 Python
python如何正确使用yield
May 21 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或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
python构建深度神经网络(续)
2018/03/10 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
详解Python实现进度条的4种方式
2020/01/15 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
应届毕业生个人求职信范文
2014/01/29 职场文书
个人承诺书
2014/03/26 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
关于幸福的感言
2015/08/03 职场文书
JavaScript的Set数据结构详解
2022/02/18 Javascript
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫