Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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;
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
# 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 = []
Ejemplo n.º 10
0
#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
Ejemplo n.º 11
0
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"))
Ejemplo n.º 12
0
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])
Ejemplo n.º 13
0
# 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):
Ejemplo n.º 14
0
    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)
Ejemplo n.º 15
0
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
Ejemplo n.º 16
0
# -*- 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")
Ejemplo n.º 17
0
# -*- 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'))