0
点赞
收藏
分享

微信扫一扫

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

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 有效不可用,回环地址

 



举报

相关推荐

0 条评论