Pythontr

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)