python和shell实现的校验IP地址合法性脚本分享

 更新时间:2014年10月23日 12:00:47   投稿:junjie  
这篇文章主要介绍了python和shell实现的校验IP地址合法性脚本分享,每个脚本配有执行效果图,需要的朋友可以参考下

一、python校验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不合法。

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

相关文章

  • Flask带参URL传值的实现方法

    Flask带参URL传值的实现方法

    这篇文章主要介绍了Flask带参URL传值的实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 解决Jupyter Notebook开始菜单栏Anaconda下消失的问题

    解决Jupyter Notebook开始菜单栏Anaconda下消失的问题

    这篇文章主要介绍了解决Jupyter Notebook开始菜单栏Anaconda下消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python小白学习爬虫常用请求报头

    Python小白学习爬虫常用请求报头

    在本篇文章里小编给大家整理了关于Python小白学习爬虫常用请求报头的相关知识点,需要的朋友们可以学习下。
    2020-06-06
  • Python移位密码、仿射变换解密实例代码

    Python移位密码、仿射变换解密实例代码

    凯撒密码(Caesar 密码)是最早的代换密码,也是古典对称密码体制的典型代表,已经初步体现出近代密码系统的雏形,这篇文章主要给大家介绍了关于Python移位密码、仿射变换解密的相关资料,需要的朋友可以参考下
    2021-06-06
  • python字符串下标与切片及使用方法

    python字符串下标与切片及使用方法

    这篇文章主要介绍了python字符串下标与切片及使用方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • python format格式化和数字格式化

    python format格式化和数字格式化

    这篇文章主要介绍了python format格式化和数字格式化,格式化字符串的函数 str.format(),它增强了字符串格式化的功能,基本语法是通过{} 和 : 来代替以前的 % ,下面内容介绍,需要的朋友可以参考一下
    2022-02-02
  • 如何让利用Python+AI使静态图片动起来

    如何让利用Python+AI使静态图片动起来

    这篇文章主要介绍了如何让利用Python+AI使静态图片动起来,基于的GAN生成对抗网络围绕主题实现静态图片动起来的效果。具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • 解决python中遇到字典里key值为None的情况,取不出来的问题

    解决python中遇到字典里key值为None的情况,取不出来的问题

    今天小编就为大家分享一篇解决python中遇到字典里key值为None的情况,取不出来的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Windows直接运行python程序的两种方法

    Windows直接运行python程序的两种方法

    本文主要介绍了Windows直接运行python程序,包括新建bat脚本和新建vbs脚本,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • Python脚本实现监听服务器的思路代码详解

    Python脚本实现监听服务器的思路代码详解

    这篇文章主要介绍了Python脚本实现监听服务器的思路,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论