首页 > 编程语言 >Python给你一个字符串,你怎么判断是不是ipv4地址?手写这段代码,并写出测试用例【杭州多测师_王sir】

Python给你一个字符串,你怎么判断是不是ipv4地址?手写这段代码,并写出测试用例【杭州多测师_王sir】

时间:2023-10-27 11:35:10浏览次数:31  
标签:sir 多测师 可用 Python 0.0 255.254 有效 str ip

ipv4地址的格式:(1~255).(0 ~255).(0 ~255).(0 ~255)

1. 正则表达式

import re

def check_ip(one_str):

    compile_ip = re.compile('^(([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$')
    if compile_ip.match(one_str):
        return True
    else:
        return False

if __name__ == '__main__':

    ip_list = ['', '172.31.137.251', '100.10.0.1000', '1.1.1.1', '12.23.13', 'aa.12.1.2', '12345678', '289043jdhjkbh']

    for one_str in ip_list:
    
if check_ip(one_str): 
            print('{0} is a legal ip address!'.format(one_str))
        else:
            print('{0} is not a legal ip address!'.format(one_str))

2. 字符串

def check_ip(one_str):

    if '.' not in one_str:
        return False
    elif one_str.count('.') != 3:
        return False
    else:
        flag = True
        one_list = one_str.split('.')
        for one in one_list:
            try:
                one_num = int(one)
                if one_num >= 0 and one_num <= 255:
                    pass
                else:
                    flag = False
            except:
                flag = False
        return flag

if __name__ == '__main__':

    ip_list = ['', '172.31.137.251', '100.10.0.1000', '1.1.1.1', '12.23.13', 'aa.12.1.2', '12345678', '289043jdhjkbh']

    for one_str in ip_list:
        if check_ip(one_str):  #字符串方法
            print('{0} is a legal ip address!'.format(one_str))
        else:
            print('{0} is not a legal ip address!'.format(one_str))

3. 测试用例

有效可用的IP地址
A类 1.0.0.0 ~126.255.255.254
A私有 10.0.0.0 -10.255.255.254
B类 128.0.0.0 -191.255.255.254
B私有 172.16.0.0 -172.31.255.254
C类 192.0.0.0 -223.255.255.254
C私有 192.168.0.0-192.168.255.254
windows自动分配 169.254.0.0-169.254.255.254
有效但不可用的IP地址
D 224.0.0.0 -239.255.255.254
E 240.0.0.0 -255.255.255.254
全网 0.x.x.x, x.x.x.0
广播 x.x.x.255
回环 127.0.0.0 -127.255.255.254
输入 结果
64.11.22.33 有效可用
10.12.13.14 有效可用,不能直接访问公网
151.123.234.56 有效可用
172.20.123.56 有效可用,不能直接访问公网
192.127.35.65 有效可用
192.168.128.128 有效可用,不能直接访问公网
169.254.15.200 有效可用,不能直接访问公网
224.1.2.3 有效不可用,超过有效范围(D类)
250.11.22.33 有效不可用,超过有效范围(E类)
0.200.3.4 有效不可用,全网地址
64.11.22.0 有效不可用,全网地址
10.12.13.255 有效不可用,广播地址
127.50.60.70 有效不可用,回环地址

 



标签:sir,多测师,可用,Python,0.0,255.254,有效,str,ip
From: https://blog.51cto.com/u_15846941/8051991

相关文章

  • 分布式链路追踪系统zipkin【杭州多测师_王sir】
    一、部署zipkin环境的方式==》1.docker  2、java-jar   3、运行源码二、分别可以在Linux系统和Windows系统里面运行zipkin三、在地址栏输入:http://127.0.0.1:9411四、zipkin的流程图由上图可以看出,应用的代码(User Code)发起 Http Get 请求(请求路径 /foo),经过 Zipkin......
  • 千万级CPS的开源网络压测软件dperf【杭州多测师_王sir】
     一、性能压测指标CPS二、dperf由百度的智能负载均衡团队研发,使用ApacheLicenseVersion2.0许可证开源发布,项目地址 https://github.com/baidu/dperf  三、详细介绍:https://developer.baidu.com/article/detail.html?id=294625四、Gitee项目源代码:https://gitee.com/baidu/dp......
  • 在线问诊 Python、FastAPI、Neo4j — 创建症状节点
    目录症状数据创建节点附学习电子病历中,患者主诉对应的相关检查,得出的诊断以及最后的用药情况。症状一般可以从主诉中提取。症状数据symptom_data.csvCSV中,没有直接一行一个症状,主要想后面将症状=>疾病做关联,最后会在一个Excel中表达所以每行实际对应一个症病,但在创建节点......
  • window安装python3
    win10安装python3a.下载python3网址https://www.python.org/downloads/,点击下图中红框内的按钮下载Python3b.安装python3打开上一步中下载好的文件,显示如下图所示界面。先勾选下图中红色框内的复选框,然后点击紫色框内的“InstallNow”进行安装安装完成后,显示下......
  • 一周学会python2-IDE
    2-IDE2.1集成开发环境的特点与库和框架的简单集成集成面向对象设计语法高亮代码自动完成版本控制除了这些功能,集成开发环境还能为开发人员提供高级调试功能。2.2PyCharmPyCharm是由软件工具开发领域的先驱JetBrains开发的仅用于Python的集成开发环境。最初,JetBrains......
  • 21.8 Python 使用BeautifulSoup库
    BeautifulSoup库用于从HTML或XML文件中提取数据。它可以自动将复杂的HTML文档转换为树形结构,并提供简单的方法来搜索文档中的节点,使得我们可以轻松地遍历和修改HTML文档的内容。广泛用于Web爬虫和数据抽取应用程序中。读者如果需要使用这个库,同样需要执行pip命令用以安装:安装PI......
  • python 字符串str与字典dict转换
    目录python字符串str与字典dict转换字典转字符串字符串转字典带引号不带引号python字符串str与字典dict转换字典转字符串c={'a':'1','b':'1'}b=str(c)print(b,type(b))字符串转字典字符串转字典分两种情况,需要根据你的字符串内容是否带引号决定,如#带引号c={'a......
  • Python 继承和子类示例:从 Person 到 Student 的演示
    继承允许我们定义一个类,该类继承另一个类的所有方法和属性。父类是被继承的类,也叫做基类。子类是从另一个类继承的类,也叫做派生类。创建一个父类任何类都可以成为父类,因此语法与创建任何其他类相同:示例,创建一个名为Person的类,具有firstname和lastname属性以及一个printna......
  • Python 继承和子类示例:从 Person 到 Student 的演示
    继承允许我们定义一个类,该类继承另一个类的所有方法和属性。父类是被继承的类,也叫做基类。子类是从另一个类继承的类,也叫做派生类。创建一个父类任何类都可以成为父类,因此语法与创建任何其他类相同:示例,创建一个名为Person的类,具有firstname和lastname属性以及一个printn......
  • python进阶知识体系md笔记14大体系200页,第2章:linux基础命令学习
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。完整版笔记直接地址:请移步这里共14......