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的Django框架中实现Hacker News的一些功能
Apr 17 Python
Python导入oracle数据的方法
Jul 10 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
python文件名和文件路径操作实例
Sep 29 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
python实现抖音视频批量下载
Jun 20 Python
python实现扫描ip地址的小程序
Apr 16 Python
python 绘制拟合曲线并加指定点标识的实现
Jul 10 Python
python issubclass 和 isinstance函数
Jul 25 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
selenium+超级鹰实现模拟登录12306
Jan 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
php adodb介绍
2009/03/19 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
python 实现多维数组(array)排序
2020/02/28 Python
Python类的继承super相关原理解析
2020/10/22 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
境外导游求职信
2014/02/27 职场文书
小学生常见病防治方案
2014/06/06 职场文书
认真学习保证书
2015/02/26 职场文书
小学数学教学随笔
2015/08/14 职场文书
会计做账心得体会
2016/01/22 职场文书
python实现简单的井字棋
2021/05/26 Python