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 实现简单的电话本功能
Aug 09 Python
Python中str.format()详解
Mar 12 Python
Python函数式编程
Jul 20 Python
python将txt文件读入为np.array的方法
Oct 30 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
python使用itchat模块给心爱的人每天发天气预报
Nov 25 Python
python随机模块random使用方法详解
Feb 14 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
Python 生成短8位唯一id实战教程
Jan 13 Python
Python基础教程,Python入门教程(超详细)
Jun 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 UTF8编码内的繁简转换类
2009/07/20 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
2015/08/21 PHP
php英文单词统计器
2016/06/23 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
vue实现的网易云音乐在线播放和下载功能案例
2019/02/18 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
pycharm 安装JPype的教程
2019/08/08 Python
如何用Python绘制3D柱形图
2020/09/16 Python
python绘图模块之利用turtle画图
2021/02/12 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
简单叙述一下MYSQL的优化
2016/05/09 面试题
文明礼仪演讲稿
2014/05/12 职场文书
毕业实习计划书
2015/01/16 职场文书
财务部会计岗位职责
2015/02/03 职场文书
社区活动总结
2015/02/04 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
docker 制作mysql镜像并自动安装
2022/05/20 Servers