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中matplotlib中文乱码解决办法
May 12 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Python3计算三角形的面积代码
Dec 18 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
Dec 05 Python
python 基于pygame实现俄罗斯方块
Mar 02 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数组应该有多大的分析
2009/07/30 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
js不是基础的基础
2006/12/24 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
jQuery弹出div层过2秒自动消失
2016/11/29 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Python新手学习标准库模块命名
2020/05/29 Python
python生成word合同的实例方法
2021/01/12 Python
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
家居装修公司创业计划书范文
2014/03/20 职场文书
大学生村官演讲稿
2014/04/25 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
python实现股票历史数据可视化分析案例
2021/06/10 Python