0
在Python(Django)中,我需要一種方法來檢測請求的來源,傳統上我使用Python來檢測客戶端IP,但是,在我的生產環境中,我的客戶端服務器使用AWS與負載平衡器,所以我需要一種方法來檢測請求從DNS來像即Python得到如何檢測公共DNS?
公共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:
所以我問的是:是有辦法確保我的客戶端請求來自特定的AWS實例嗎?
您已經評價過購買在AWS上的靜態IP的可能性? http://aws.amazon.com/articles/1346 –
將無法正常工作我使用負載平衡器+其他原因我的意思是我有一個IP,但它改變,所以不能用於驗證。我確定有一種方法可以使用boto來驗證客戶端是否在同一個實例上? – Prometheus
不能真正瞭解你的架構。如果EC2實例調用您的django服務,我沒有看到負載均衡器的角色。 –