当前位置: 首页>>代码示例>>Python>>正文


Python GeoIP.record_by_name方法代码示例

本文整理汇总了Python中pygeoip.GeoIP.record_by_name方法的典型用法代码示例。如果您正苦于以下问题:Python GeoIP.record_by_name方法的具体用法?Python GeoIP.record_by_name怎么用?Python GeoIP.record_by_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pygeoip.GeoIP的用法示例。


在下文中一共展示了GeoIP.record_by_name方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: run

# 需要导入模块: from pygeoip import GeoIP [as 别名]
# 或者: from pygeoip.GeoIP import record_by_name [as 别名]
    def run(self):
        log.debug("Updating mirror database")
        geoip = GeoIP(Config.GEOIP_PATH_V4)

        for status in mirror_statuses(unofficial_mirrors=Config.UNOFFICIAL_MIRRORS):
            name = status['mirror']
            if name == "a.pypi.python.org":
                # don't include 'a' in the list of mirrors - it's no mirror after all
                continue
            time_diff = status['time_diff']
            if not isinstance(time_diff, timedelta):
                continue

            log.debug("  Processing mirror '%s'", name)
            record = geoip.record_by_name(name)
            lat = record['latitude']
            lon = record['longitude']

            log.debug("    Age: %d, Lat: %0.5f, Lon: %0.5f", time_diff.total_seconds(), lat, lon)

            try:
                mirror = Mirror.objects.get(name=name)
            except ObjectNotFound:
                mirror = Mirror(name=name)
            mirror.age = time_diff.total_seconds()
            mirror.lat = lat
            mirror.lon = lon

            mirror.save()

        self.redis.set(Config.KEY_LAST_UPDATE, time.time())
        log.debug("Finished updating mirror database")
开发者ID:ulope,项目名称:nearest_pypi,代码行数:34,代码来源:update_mirrors.py

示例2: application

# 需要导入模块: from pygeoip import GeoIP [as 别名]
# 或者: from pygeoip.GeoIP import record_by_name [as 别名]
def application(environ, start_response):
    from pygeoip import GeoIP
    from os import path
    from urlparse import parse_qs
    import json

    status = '200 OK'
    ip = environ.get('HTTP_X_REAL_IP',
        environ.get('HTTP_X_FORWARDED_FOR',
            environ.get('REMOTE_ADDR')
        )
    )

    qs = parse_qs(environ.get('QUERY_STRING', ''))
    callback = qs.get('callback', '')

    if any(callback):
        callback = callback[0]
    else:
        callback = None

    if ip:
        filename = path.join(path.dirname(__file__), 'data', 'GeoLiteCity.dat')
        geo = GeoIP(filename)
        record = geo.record_by_name(ip)

        if record:
            response_headers = [('Content-type', 'application/json')]
            start_response(status, response_headers)

            if callback:
                yield '%s(' % callback

            yield json.dumps(record)
            if callback:
                yield ')'

    yield
开发者ID:iamsteadman,项目名称:whatsmylatlon,代码行数:40,代码来源:wsgi.py

示例3: RootWidget

# 需要导入模块: from pygeoip import GeoIP [as 别名]
# 或者: from pygeoip.GeoIP import record_by_name [as 别名]
class RootWidget(BoxLayout):

    # these link back to the kv file
    user_input = ObjectProperty(None)
    target_str = ObjectProperty(None)
    out_key = ObjectProperty(None)
    out_val = ObjectProperty(None)

    # regex's match ip address or domain name respectively
    ip = compile(r'(?:\d+\.?){4}')
    addr = compile(r'([a-z]+://)?(www\.)?[^ ]+\.[a-z.]*')


    def __init__(self, **kwargs):
        '''
        Initialises the GeoLiteCity database
        '''
        super(RootWidget, self).__init__(**kwargs)
        self.gip = GeoIP('GeoLiteCity.dat')


    def get_info(self):
        '''
        main program logic
        '''
        # get user input
        address = self.user_input.text.lower().strip()
        host_name = ''

        # test for matches
        is_ip = search(self.ip, address)
        is_addr = search(self.addr, address)

        # deal with what we matched
        if is_ip:
            try:
                target = is_ip.string
                ip_info = self.gip.record_by_addr(target)
                # if is_ip, try to resolve host name
                try:
                    host_name = gethostbyaddr(target)[0]
                    print host_name
                except:
                    pass
            except Exception:
                self.target_str.text = "[color=#FF6600][b]Can't Connect..[/b][/color]"
                self.clear_labels()
                return
        elif is_addr:
            try:
                target = is_addr.string
                ip_info = self.gip.record_by_name(target)
                # if is_addr, try to resolve IP
                try:
                    host_name = gethostbyname(target)
                except:
                    pass
            except Exception, e:
                self.target_str.text = "[color=#FF6600][b]Can't Connect..[/b][/color]"
                self.clear_labels()
                return
        else:
开发者ID:EnergyWolf,项目名称:pygeo,代码行数:64,代码来源:main.py


注:本文中的pygeoip.GeoIP.record_by_name方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。