首页 > 其他分享 >Django中获取用户IP方法

Django中获取用户IP方法

时间:2023-02-22 12:22:32浏览次数:48  
标签:HTTP Header IP request 用户 Django 获取 META

Django中通过request.META可以来获取用户的IP。

request.META 是一个Python字典,包含了所有本次HTTP请求的Header信息,比如用户IP地址和用户Agent(通常是浏览器的名称和版本号)。 注意,Header信息的完整列表取决于用户所发送的Header信息和服务器端设置的Header信息。

如果用户是正常情况下其字典的KEY键名为‘’REMOTE_ADDR‘’:

ip = request.META[‘REMOTE_ADDR’]

但是有些网站服务器会使用ngix等代理http,或者是该网站做了负载均衡,导致使用remote_addr抓取到的是127.0.0.1,这时使用HTTP_X_FORWARDED_FOR才获得是用户的真实IP。推荐使用以下代码:

if 'HTTP_X_FORWARDED_FOR' in request.META: 
   ip = request.META.get('HTTP_X_FORWARDED_FOR') 
else:
   ip = request.META.get('REMOTE_ADDR')

 

标签:HTTP,Header,IP,request,用户,Django,获取,META
From: https://www.cnblogs.com/shaoyishi/p/17143926.html

相关文章