Django:获取请求IP地址的正确方法是什么?

0 投票
2 回答
878 浏览
提问于 2025-04-15 22:44

我正在使用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上,你可以信任从前端服务器传来的数据。

撰写回答