实现目的
将一组IP地址,可能含有不合法的IP地址,放到一个列表中,查找出合法的IP地址,并分类内网和外网地址。
# coding:gbk
import re
_input = ['10.12.30.254', '10.256.8.56', '192.168.257.1', '172.56.25.2', '183.18.46.53', '86.17.46.12', '213.49.56.38','58.61.152.300']
def divide_ips(ips):
intranet = []
extranet = []
ip_rules = '((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$' #正则匹配合法IP
for item in ips:
if re.match(ip_rules,item):
if re.match('^10\.|192|172',item):
intranet.append(item)
else:
extranet.append(item)
#return intranet, extranet
print("内网地址有:",intranet)
print("外网地址有:",extranet)
divide_ips(_input)
输出:
内网地址有: ['10.12.30.254', '172.56.25.2']
外网地址有: ['183.18.46.53', '86.17.46.12', '213.49.56.38']