尝试获取[Django] 客户端的IP地址!

这篇文章的目的

能够了解如何在Django中实现获取客户端IP地址的函数的方法

应用技术

python = 3.11.2
Django = 4.2.3

现在让我们立即来看看对应的函数。

def get_client_ip(request):
    """クライアントのIPアドレスを取得"""
    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

通过获取客户端的IP地址,可以用于安全和跟踪的目的。

取得方法由客户端是否经过代理服务器决定。

    1. 如果通过代理服务器,则从”HTTP_X_FORWARDED_FOR”中获取。

 

    如果没有经过代理服务器,则从”REMOTE_ADDR”中获取。

如果使用代理服务器(如Nginx或Apache),则会查看HTTP_X_FORWARDED_FOR头。
如果存在该头,则其第一个元素将成为客户端的实际IP地址。

参考

    • How do I get user IP address in Django?

 

    Django Request and response objects
广告
将在 10 秒后关闭
bannerAds