- 判断IP 格式是否正确
def check_value(self, ipaddr): '''检查IP是否合法 :param ipaddr: string :return True ''' addr=ipaddr.strip().split('.') if len(addr) != 4: return False for i in range(4): try: addr[i]=int(addr[i]) except: return False if addr[i]<=255 and addr[i]>=0: pass else: return False i+=1 else: return True
- 判断是否为公网IP
from IPy import IP if self.check_value(value): if IP(value).iptype() is 'PUBLIC': return True
或则直接用netaddr
from netaddr import * ip = IPAddress(value) if ip.is_unicast() and not ip.is_private(): return True