Атрибут remote_addr
Атрибут remote_addr применяется к объекту запроса
Request
и содержит строку с IP-адресом клиента, сделавшего запрос.
Значение берётся из WSGI-окружения (ключ REMOTE_ADDR)
и обычно представляет собой IPv4- или IPv6-адрес.
Если адрес определить не удалось, атрибут возвращает None.
Синтаксис
request.remote_addr
Пример
Давайте выведем IP-адрес клиента в ответе на запрос:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
return request.remote_addr
Результат выполнения кода для локального запроса:
127.0.0.1
Пример
Давайте проверим, с какого адреса пришёл запрос, и вернём разные ответы для локального и внешнего клиента:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
addr = request.remote_addr
if addr == '127.0.0.1':
return 'local client'
return 'remote client: ' + str(addr)
Результат выполнения кода для локального запроса:
local client
Пример
Давайте сохраним IP-адрес клиента в шаблон вместе с другими данными запроса:
from bottle import Bottle, request, template
app = Bottle()
@app.route('/')
def index():
return template('index', addr=request.remote_addr)
Содержимое шаблона index.tpl:
<p>Client address: {{ addr }}</p>
Результат выполнения кода для локального запроса:
<p>Client address: 127.0.0.1</p>
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
атрибут
environ,
который хранит WSGI-окружение запроса -
атрибут
remote_route,
который содержит список IP-адресов прокси -
атрибут
headers,
который хранит заголовки запроса