def LoadIpIpConf(): try: print("Load IpIp conf file:" + IPIP_SERVER_CONF_FILE) IPX.load(os.path.abspath(IPIP_SERVER_CONF_FILE)) return True except Exception, e: print("LoadIpIpConf exception:" + str(sys.exc_info()[0]) + "," + str(sys.exc_info()[1])) return False
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 from ipip import IPX import logging logger = logging.getLogger(__name__) IPX.load() class IpSource(object): @staticmethod def is_ipv4(ip): if not ip: return False if not isinstance(ip, basestring): return False items = ip.split('.') if len(items) != 4: return False for item in items: try: int_item = int(item) except ValueError: return False if int_item < 0 or int_item > 255: return False return True @staticmethod def split_address(address): result = []
#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
def get_cdn_name(url): if('ws' in url): return '网宿' elif('gs' in url): return '高升' elif('uc' in url): return 'UC' elif('bs' in url): return '白山' else: return 'CDN is not defined' 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 IPX.load(os.path.abspath("/usr/local/lib/python2.7/dist-packages/mydata4vipday2.datx"))
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 from ipip import IPX import logging logger = logging.getLogger(__name__) IPX.load() class IpSource(object): @staticmethod def is_ipv4(ip): if not ip: return False if not isinstance(ip, basestring): return False items = ip.split('.') if len(items) != 4: return False for item in items: try: int_item = int(item) except ValueError: return False if int_item < 0 or int_item > 255: return False return True @staticmethod def split_address(address):
f = file('ip.txt','a+') for i1 in range(0,254): 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)
from django.conf import settings from ipip import IPX IPX.load(settings.IPIP_DATX_PATH) IPX_KEYS = [ 'country', 'province', 'city', 'district', 'isp', 'lat', 'lag', 'timezone_name', 'timezone', 'zip', 'phonecode', 'countrycode', 'region' ] 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
# -*- 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")
# -*- 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'))