В Python (Django) Мне нужен способ определить происхождение запроса, традиционно я использовал Python для обнаружения IP-адреса клиента, однако в моей работе клиентский сервер использует AWS с балансировщиком нагрузки, поэтому мне нужен способ обнаружения запрос исходит от DNS, как то естьPython узнает, как обнаружить публичный DNS?
Public DNS: ec2-11-11-11-48.eu-north-2.compute.amazonaws.com
есть ли способ обнаружения публичного DNS-сервера от клиента, т.е. для IP я делаю это:
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
class IpAuthentication(Authentication):
def is_authenticated(self, request, **kwargs):
return get_client_ip(request) in SETTINGS.ALLOWED_IPS:
Так что я спрашиваю: is есть ли способ убедиться, что запросы моих клиентов поступают из конкретного экземпляра AWS?
Вы оценили возможность покупки статический IP на AWS? http://aws.amazon.com/articles/1346 –
не работает. Я использую балансировку нагрузки + другие причины, я имею в виду, что у меня есть IP-адрес, но он изменяется, поэтому его нельзя использовать для проверки. Я уверен, что существует способ, чтобы клиент мог находиться в одном экземпляре, возможно, используя boto? – Prometheus
Не могу по-настоящему понять вашу архитектуру. Я не вижу роли балансировки нагрузки, если экземпляр EC2 вызывает вашу службу django. –