Задать вопрос

Как определить откуда пришел запрос из lan или из-за nat?

Добрый день!

Нужно сделать так чтобы поведение application разделялось для пользователей которые зашли через локальную сеть и пользователей которые зашли через нат.

python 3, Django 1.8, apache 2.4.

конфигурация виртуального хоста:
<VirtualHost *:8080>
WSGIScriptAlias / /www/pi/pi/wsgi.py
#WSGIPythonPath /www/pi/
<Directory /www/pi>
<Files wsgi.py>
Require all granted
</Files>
</Directory>


Мне в голову пришло 1 идея, определять ip request'а:
def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip


Все работает нормально когда пользователь заходит из локальной сети, но если пользователь седит через прокси то я получаю ip его машины, не прокси сервера, не его внешнего ip.
  • Вопрос задан
  • 323 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы