django获取用户远程真实IP地址

2023-02-11 00:00:00 获取 地址 真实

在 Django 中,您可以通过读取请求的 META 字典中的 HTTP_X_FORWARDED_FOR 或 HTTP_X_REAL_IP 来获取用户的真实 IP 地址。

例如,在 Django 视图中,您可以这样获取用户的真实 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

请注意,如果用户在代理服务器或负载均衡器上,则 HTTP_X_FORWARDED_FOR 可能包含一个逗号分隔的列表,因此您需要解析该列表以获取真实的 IP 地址。

在某些情况下,您可能需要对用户的 IP 地址进行验证或过滤,以防止任何不当行为。

相关文章