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使用shelve模块实现简单数据存储的方法
May 20 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
Python求解任意闭区间的所有素数
Jun 10 Python
对python插入数据库和生成插入sql的示例讲解
Nov 14 Python
对python 通过ssh访问数据库的实例详解
Feb 19 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
flask开启多线程的具体方法
Aug 02 Python
详解python 内存优化
Aug 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的5个入手程序
2006/11/23 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
JS自动适应的图片弹窗实例
2013/06/29 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
兼职业务员岗位职责
2014/01/01 职场文书
学校万圣节活动方案
2014/02/13 职场文书
村委会换届选举方案
2014/05/03 职场文书
体育比赛口号
2014/06/09 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android