尝试获取[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地址,可以用于安全和跟踪的目的。
取得方法由客户端是否经过代理服务器决定。
-
- 如果通过代理服务器,则从”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