import re
import socket
def ip_is_legal(ip_str):
compile_ip = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')
if compile_ip.match(ip_str):
pass
elif compile_ip.match(ip_str.split("/")[0]) and 0 < int(ip_str.split("/")[-1]) <= 32:
pass
elif compile_ip.match(ip_str.split("-")[0]) and compile_ip.match(ip_str.split("-")[-1]) and int(
socket.inet_aton(ip_str.split("-")[0]).encode('hex'), 16) < int(
socket.inet_aton(ip_str.split("-")[-1]).encode('hex'), 16):
pass
else:
raise exceptions.ValidationError(ip_str + ': 不是有效的ip或ip段')
检测ip是否属于某个ip段
import IPy
def ip_check(ip, whitelists):
for whitelist in whitelists:
try:
if '-