2015-03-14 19:45:15 +01:00
|
|
|
from flask.ext.babel import gettext
|
2015-03-10 19:55:22 +01:00
|
|
|
name = "Self IP"
|
2015-03-14 19:45:15 +01:00
|
|
|
description = gettext('Display your source IP address if the query expression is "ip"')
|
2015-03-10 19:55:22 +01:00
|
|
|
default_on = True
|
|
|
|
|
|
|
|
|
2015-03-14 19:45:15 +01:00
|
|
|
# attach callback to the pre search hook
|
|
|
|
# request: flask request object
|
|
|
|
# ctx: the whole local context of the pre search hook
|
2015-03-10 19:55:22 +01:00
|
|
|
def pre_search(request, ctx):
|
|
|
|
if ctx['search'].query == 'ip':
|
|
|
|
x_forwarded_for = request.headers.getlist("X-Forwarded-For")
|
|
|
|
if x_forwarded_for:
|
|
|
|
ip = x_forwarded_for[0]
|
|
|
|
else:
|
|
|
|
ip = request.remote_addr
|
|
|
|
ctx['search'].answers.clear()
|
|
|
|
ctx['search'].answers.add(ip)
|
2015-03-14 19:45:15 +01:00
|
|
|
# return False prevents exeecution of the original block
|
2015-03-10 19:55:22 +01:00
|
|
|
return False
|
|
|
|
return True
|