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
确保正确配置了反向代理(如果有)(例如,mod_rpaf
为Apache安装)。
注意:上面使用的第一项X-Forwarded-For
,但是你可能想使用最后一项(例如,在Heroku的情况下:在Heroku上获取客户端的真实IP地址)
然后将请求作为参数传递给它;
get_client_ip(request)