def locate_ip(ip, default=u'unknown'): if not IpSource.is_ipv4(ip): return default, default, default try: address = IPX.find(ip) except Exception: logger.exception(u'根据IP获取城市失败 IP:[%s]', ip) address = "" if address: address_parts = IpSource.split_address(address) if address_parts[0] == u'中国': province = address_parts[1] city = address_parts[2] operator = address_parts[-9] else: province = address_parts[0] city = '' operator = '' else: province = '' city = '' operator = '' if city: return city, province, operator elif not province or province in (u'本机地址', u'局域网', u'N/A'): return default, default, default else: return city, province, operator
def locate_ip(ip, default=u'unknown'): if not IpSource.is_ipv4(ip): return default, default, default try: address = IPX.find(ip) except Exception: logger.exception(u'根据IP获取城市失败 IP:[%s]', ip) address = "" if address: address_parts = IpSource.split_address(address) if address_parts[0] == u'中国': province = address_parts[1] city = address_parts[2] operator = address_parts[-9] else: province = address_parts[0] city = '' operator = '' else: province = '' city = '' operator = '' if city: return city, province, operator elif not province or province in (u'本机地址', u'局域网', u'N/A'): return default, default, default else: return city, province, operator
def query(ip, readable=False): data = IPX.find(ip).split('\t') if len(data) != 13: return {} if readable: return ' '.join( filter(bool, [data[0], data[1], data[2], data[3], data[4]])) parsed = {k: data[i] for i, k in enumerate(IPX_KEYS)} return parsed
def GetClientFrom(strIp): strRet= "" try: strRet= IPX.find(strIp) return strRet except Exception, e: print("GetClientFrom exception:" + str(sys.exc_info()[0]) + "," + str(sys.exc_info()[1])) strRet= "error" return strRet;
def GetClientFrom(strIp): strRet = "" try: strRet = IPX.find(strIp) return strRet except Exception, e: print("GetClientFrom exception:" + str(sys.exc_info()[0]) + "," + str(sys.exc_info()[1])) strRet = "error" return strRet
def get_ip_info(ip_addr): info = '' if(re.match('^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', ip_addr) != None): if (ip_addr == '203.156.235.250'): info = '203.156.235.250(波罗蜜全球购本部)' else: ip_info = IPX.find(ip_addr) if ip_info != 'N/A': ip_info_list = ip_info.split("\t") info = '{}({} {} {})'.format(ip_addr, ip_info_list[1], ip_info_list[2], ip_info_list[4]) elif ip_addr == 'No DNS info': info = 'No DNS info' else: info = "ip format is invalid" return info
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") import os from ipip import IP from ipip import IPX IP.load(os.path.abspath("mydata4vipday2.dat")) print IP.find("118.28.8.8") IPX.load(os.path.abspath("mydata4vipday2.datx")) print IPX.find("118.28.8.8")
for i2 in range(0,254): for i3 in range(0,254): for i4 in range(0,254): ip='%s.%s.%s.%s' %(i1,i2,i3,i4) if i1 not in (0,10,172,192,127): # print(ip) try: #print(ip) IP.load(os.path.abspath("mydata4vipday2.datx")) # IP.load(os.path.abspath("monipdb.dat")) print IP.find(ip) IPX.load(os.path.abspath("mydata4vipday2.datx")) # IP.load(os.path.abspath("monipdb.dat")) ip1 = IPX.find(ip) print ip,ip1 codelst = ['\n',ip,ip1,'\n'] f.writelines(codelst) ip1 = IPX.find(ip) #print ip,ip1 codelst = ['\n',ip,ip1,'\n'] f.writelines(codelst) except Exception as e: print(e) continue
#https://segmentfault.com/a/1190000000352578 ##更新本地dat文件 #from qqwry import updateQQwry #result = updateQQwry('qqwry.dat') ##use from qqwry import QQwry q = QQwry() q.load_file('qqwry.dat')#工作路径 result = q.lookup('xxx.xxx.xx.xx') print(result) ###################################### ipip.net ######################################### #https://github.com/17mon/python import os from ipip import IP#目前无法pip(python3.5.1) from ipip import IPX IP.load(os.path.abspath("mydata4vipday2.dat"))#工作路径 print IP.find("118.28.8.8") IPX.load(os.path.abspath("mydata4vipday2.datx"))#工作路径 print IPX.find("118.28.8.8") >>>中国 天津 天津 鹏博士 >>>中国 天津 天津 鹏博士 39.128399 117.185112 Asia/Shanghai UTC+8 120000
import os import sys from ipip import IP from ipip import IPX IPX.load(os.path.abspath("17monipdb.datx")) reload(sys) sys.setdefaultencoding( "utf-8" ) print sys.argv[1]+" "+IPX.find(sys.argv[1])
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import os from ipip import IP from ipip import IPX IP.load(os.path.abspath('mydata4vipday2.dat')) print(IP.find('118.28.8.8')) IPX.load(os.path.abspath('mydata4vipday2.datx')) print(IPX.find('118.28.8.8'))