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实现在每个独立进程中运行一个函数的方法
Apr 23 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
python爬取网页内容转换为PDF文件
Jul 28 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
python 默认参数相关知识详解
Sep 18 Python
python内置函数sorted()用法深入分析
Oct 08 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
Python:type、object、class与内置类型实例
Dec 25 Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 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 cookie使用方法学习笔记分享
2013/11/07 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
Symfony查询方法实例小结
2017/06/28 PHP
实例讲解php实现多线程
2019/01/27 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
js 颜色选择插件
2017/01/23 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
vue小白入门教程
2018/04/02 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
对python的文件内注释 help注释方法
2018/05/23 Python
深入浅析Python的类
2018/06/22 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
医药类个人求职的自我评价
2014/02/12 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
赞助商致辞
2015/07/30 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python