使用request.META['REMOTE_ADDR']
代码获取IP时。这在本地系统上工作正常,但是当托管在Web服务器上时,IP得到的是127.0.0.1 - 这怎么解决?使用Django,为什么REMOTE_ADDR在Web服务器上返回127.0.0.1?
7
A
回答
9
您的Web服务器可能位于负载平衡器后面。你可以尝试使用request.META ['HTTP_X_FORWARDED_FOR']。
或更好,请看django book, chapter 15 - 什么是中间件?和反向代理支持(X-Forwarded-For Middleware)部分。
+2
请注意,X-Forwarded-For中间件已被弃用/从最近的Django版本中移除,因为它决定它可能会给开发人员一个错误的感觉,即X-Forwarded-For头可以被实际依赖(它可以' T)。很容易写出你自己的;只是意识到它很容易被欺骗。 – 2010-01-30 15:29:01
2
如果你在一个代理的后面,运行apache作为web服务器,你可以使用mod_rpaf。代理只需要发送X-Forwarded-For或X-Real-IP头。
相关问题
- 1. 为什么$ _SERVER ['REMOTE_ADDR']返回127.0.0.1
- 2. $ _SERVER ['REMOTE_ADDR']返回127.0.0.1
- 3. 为什么ServerVariable [“REMOTE_ADDR”]返回服务器IP?
- 4. 为什么request.env ['REMOTE_ADDR']返回两个IP?
- 5. 为什么只有debian返回127.0.0.1
- 6. 您使用Go for web服务使用什么Web服务器?
- 7. Django:request.META ['REMOTE_ADDR']总是'127.0.0.1'
- 8. 为什么Web服务返回值为空?
- 9. 为什么Web服务返回的数据作为msg.d
- 10. python:wmi:为什么远程服务器上的Win32_Processor LoadPercentage返回'None'?
- 11. 为什么要在框架Web服务器前使用http服务器?
- 12. 什么是Django 1.2.4开发服务器返回的代码247?
- 13. 过滤什么服务器返回
- 14. 从myfeeds.php返回什么(服务器端)
- 15. 我的django服务器运行在127.0.0.1:8000/blog如何更改成为127.0.0.1:8000
- 16. 127.0.0.1 works,localhost not,在apache2服务器上
- 17. 为什么Web服务无法返回正确的JSON?
- 18. 为什么ASP.NET JSON Web服务返回'd'结果?
- 19. 为什么值web服务返回不是xml
- 20. Web服务调用返回
- 21. 在Glassfish服务器上部署时,什么是Web服务URL?
- 22. 使用django调用web服务器
- 23. 为什么SOAP Web服务
- 24. 我想尝试使用ServerVariables [“REMOTE_ADDR”]检查IP,但会将返回127.0.0.1
- 25. 使用cURL与127.0.0.1连接到Django dev服务器不工作
- 26. 使用Web服务返回记录集
- 27. 使用PHP Web服务将返回XML
- 28. 使用MS Access在Web服务器中返回按需报告?
- 29. 如何使用await在c#中从Web服务器返回?
- 30. 如何在Tornado Web服务器上使用Django?
请求如何从Web服务器传递到Django应用程序? – 2010-01-27 06:11:31