Django:获取请求IP地址的正确方法是什么?
我正在使用Django 1.1在Webfaction上开发一个应用程序。我想获取到访请求的IP地址,但是当我使用request.META['REMOTE_ADDR']时,它返回的是127.0.0.1。似乎有几种不同的方法可以获取这个地址,比如使用HTTP_X_FORWARDED_FOR,或者安装一个叫做SetRemoteAddrFromForwardedFor的中间件。我只是想知道哪种方法最好?
2 个回答
2
在Django 1.1.1版本中,远程代理中间件被移除了。这主要是因为依赖REMOTE_ADDR或HTTP_X_FORWARDED这些信息并不安全,这可能也能帮助你决定接下来该怎么做。
1
我使用中间件是因为这样我就不用改动应用程序的代码了。
如果我想把我的应用程序迁移到其他服务器,只需要修改中间件,而不会影响到其他部分。
安全性不是问题,因为在WebFaction上,你可以信任从前端服务器传来的数据。