擅长:python、mysql、java
<pre><code>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
</code></pre>
<p>确保您正确配置了反向代理(如果有的话)(例如,为Apache安装了<code>mod_rpaf</code>)。</p>
<p>注意:上面使用了<code>X-Forwarded-For</code>中的<strong>第一个</strong>项,但是您可能希望使用<strong>最后一个</strong>项(例如,在Heroku的情况下:<a href="https://stackoverflow.com/questions/18264304/get-clients-real-ip-address-on-heroku#answer-18517550">Get client's real IP address on Heroku</a>)</p>
<p>然后将请求作为参数传递给它</p>
<pre><code>get_client_ip(request)
</code></pre>