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中线程编程之threading模块的使用详解
Jun 23 Python
python检测是文件还是目录的方法
Jul 03 Python
python学习之编写查询ip程序
Feb 27 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
Python标准库inspect的具体使用方法
Dec 06 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
详解Python文件修改的两种方式
Aug 22 Python
详解Django配置优化方法
Nov 18 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
Feb 17 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与已存在的Java应用程序集成
2006/10/09 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
webpack打包js的方法
2018/03/12 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python安装与使用redis的方法
2016/04/19 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
医院实习介绍信
2014/01/12 职场文书
迟到检讨书500字
2014/02/05 职场文书
节约电力资源的建议书
2014/03/12 职场文书
应届大专生求职信
2014/06/26 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
2014年销售部工作总结
2014/12/01 职场文书
医生个人年终总结
2015/02/28 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
一行Python命令实现批量加水印
2022/04/07 Python