本文整理汇总了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")
示例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
示例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: