husonet | Tarih: 27.12.2019
Django'da kullanıcı IP adresini nasıl alabilirim?
Django framework'u kullanarak yapılan istekler üzerinden ip adresine ulaşılması.
Ters Proxy kullanılıyor olabilir o zaman doğru yapılandırıldığından emin olmalısınız.
X-Forwarded-For yerine bazen ROMETE_ADDR adresini kullanmak isteyebilirsiniz aşağıdaki fonksiyonu ona göre düzenleyebilirsiniz.
X-Forwarded-For: Bir kullanıcının proxy üzerinden geldiğini bu flag üzerinden tespit edebiliriz, proxy üzerinden gelen kullanıcının ip adresi gözükmez.
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
Kullanımı
get_client_ip(request)