클라이언트의 실제 IP를 가져온다.
[Nginx] proxy_set_header X-Forwarded-For, X-real-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
다른 경로를 경유해서 XFF가 존재한다면 XFF의 첫번째 IP를 가져오고 아니면 REMOTE_ADDR
의 IP를 가져온다.