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 | 有效不可用,回环地址 |
版权声明:本文为nickyff原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。