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查询mysql中文乱码问题
Nov 09 Python
python 简单的多线程链接实现代码
Aug 28 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
python分布式环境下的限流器的示例
Oct 26 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
Python 隐藏输入密码时屏幕回显的实例
Feb 19 Python
简单的Python调度器Schedule详解
Aug 30 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
python实现五子棋程序
Apr 24 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
在python win系统下 打开TXT文件的实例
2018/04/29 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
python字典的遍历3种方法详解
2019/08/10 Python
python tornado修改log输出方式
2019/11/18 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
相亲大会策划方案
2014/06/05 职场文书
作风建设剖析材料
2014/10/06 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
2015年度党员个人总结
2015/02/14 职场文书
一文带你探究MySQL中的NULL
2021/11/11 MySQL
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL