From 4e460726dd276713da0cfdb69c558d4daaecb2d1 Mon Sep 17 00:00:00 2001 From: Aatish Neupane Date: Thu, 29 Nov 2018 19:48:02 +0545 Subject: [PATCH] use x-real-ip headers --- ipv6work/ipv6middleware.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ipv6work/ipv6middleware.py b/ipv6work/ipv6middleware.py index 972a01d..19f3715 100644 --- a/ipv6work/ipv6middleware.py +++ b/ipv6work/ipv6middleware.py @@ -24,12 +24,16 @@ def block_ipv4(get_response): return get_response(request) path = request.path_info.lstrip('/') - x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') - if x_forwarded_for: - client_ip = x_forwarded_for - else: - client_ip = request.META.get('REMOTE_ADDR') - print(is_ipv6_exempt(path), is_valid_ipv6(client_ip)) + + real_ip_headers = ['HTTP_X_REAL_IP', 'REMOTE_ADDR', 'HTTP_X_FORWARDED_FOR'] + client_ip = None + + for header in real_ip_headers: + client_ip = request.META.get(header) + + if client_ip: + break + if is_valid_ipv6(client_ip) or is_ipv6_exempt(path): return get_response(request) else: