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 cookielib 登录人人网的实现代码
Dec 19 Python
python中常用的各种数据库操作模块和连接实例
May 29 Python
Python加载带有注释的Json文件实例
May 23 Python
Python实现二维曲线拟合的方法
Dec 29 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
python多进程间通信代码实例
Sep 30 Python
Django中提示消息messages的设置方式
Nov 15 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
Python selenium文件上传下载功能代码实例
Apr 13 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
python 5个实用的技巧
Sep 27 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
20个PHP常用类库小结
2011/09/11 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
javascript Base类 包含基本的方法
2009/07/22 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
Python 抓取动态网页内容方案详解
2014/12/25 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
Ruby如何进行文件操作
2014/07/17 面试题
省三好学生申请材料
2014/01/22 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS