def render(self): request = self.request if not self.context.full_functionality: request.response.setStatus(404) return u'' ip_address = ipaddress_from_request(request) country = request_country(request) mirrors = getUtility(IDistributionMirrorSet).getBestMirrorsForCountry( country, MirrorContent.ARCHIVE) body = "\n".join(mirror.base_url for mirror in mirrors) request.response.setHeader('content-type', 'text/plain;charset=utf-8') if country is None: country_name = 'Unknown' else: country_name = country.name request.response.setHeader('X-Generated-For-Country', country_name) request.response.setHeader('X-Generated-For-IP', ip_address) # XXX: Guilherme Salgado 2008-01-09 bug=173729: These are here only # for debugging. request.response.setHeader( 'X-REQUEST-HTTP_X_FORWARDED_FOR', request.get('HTTP_X_FORWARDED_FOR')) request.response.setHeader( 'X-REQUEST-REMOTE_ADDR', request.get('REMOTE_ADDR')) return body.encode('utf-8')
def __init__(self, request): self.request = request ip_address = ipaddress_from_request(self.request) if ip_address is None: # This happens during page testing, when the REMOTE_ADDR is not # set by Zope. ip_address = '127.0.0.1' ip_address = ensure_address_is_not_private(ip_address) self.ip_address = ip_address self.geoip_record = getUtility(IGeoIP).getRecordByAddress( self.ip_address)
def __init__(self, request): self.request = request ip_address = ipaddress_from_request(self.request) if ip_address is None: # This happens during page testing, when the REMOTE_ADDR is not # set by Zope. ip_address = '127.0.0.1' ip_address = ensure_address_is_not_private(ip_address) self.ip_address = ip_address self.geoip_record = getUtility(IGeoIP).getRecordByAddress( self.ip_address)
def getLocalLanguages(self): """See the IRequestLocationLanguages interface""" ip_addr = ipaddress_from_request(self.request) if ip_addr is None: # this happens during page testing, when the REMOTE_ADDR is not # set by Zope ip_addr = '127.0.0.1' gi = getUtility(IGeoIP) country = gi.getCountryByAddr(ip_addr) if country in [None, 'A0', 'A1', 'A2']: return [] languages = [ language for language in country.languages if language.visible] return sorted(languages, key=lambda x: x.englishname)
def getLocalLanguages(self): """See the IRequestLocationLanguages interface""" ip_addr = ipaddress_from_request(self.request) if ip_addr is None: # this happens during page testing, when the REMOTE_ADDR is not # set by Zope ip_addr = '127.0.0.1' gi = getUtility(IGeoIP) country = gi.getCountryByAddr(ip_addr) if country in [None, 'A0', 'A1', 'A2']: return [] languages = [ language for language in country.languages if language.visible] return sorted(languages, key=lambda x: x.englishname)
def render(self): request = self.request if not self.context.full_functionality: request.response.setStatus(404) return u"" ip_address = ipaddress_from_request(request) country = request_country(request) mirrors = getUtility(IDistributionMirrorSet).getBestMirrorsForCountry(country, MirrorContent.ARCHIVE) body = "\n".join(mirror.base_url for mirror in mirrors) request.response.setHeader("content-type", "text/plain;charset=utf-8") if country is None: country_name = "Unknown" else: country_name = country.name request.response.setHeader("X-Generated-For-Country", country_name) request.response.setHeader("X-Generated-For-IP", ip_address) # XXX: Guilherme Salgado 2008-01-09 bug=173729: These are here only # for debugging. request.response.setHeader("X-REQUEST-HTTP_X_FORWARDED_FOR", request.get("HTTP_X_FORWARDED_FOR")) request.response.setHeader("X-REQUEST-REMOTE_ADDR", request.get("REMOTE_ADDR")) return body.encode("utf-8")