使用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. 爲什麼request.env ['REMOTE_ADDR']返回兩個IP?
- 3. 您使用Go for web服務使用什麼Web服務器?
- 4. Django:request.META ['REMOTE_ADDR']總是'127.0.0.1'
- 5. 爲什麼Web服務返回的數據作爲msg.d
- 6. python:wmi:爲什麼遠程服務器上的Win32_Processor LoadPercentage返回'None'?
- 7. 什麼是Django 1.2.4開發服務器返回的代碼247?
- 8. 從myfeeds.php返回什麼(服務器端)
- 9. 我的django服務器運行在127.0.0.1:8000/blog如何更改成爲127.0.0.1:8000
- 10. 127.0.0.1 works,localhost not,在apache2服務器上
- 11. 爲什麼值web服務返回不是xml
- 12. Web服務調用返回
- 13. 在Glassfish服務器上部署時,什麼是Web服務URL?
- 14. 使用django調用web服務器
- 15. 爲什麼SOAP Web服務
- 16. 使用PHP Web服務將返回XML
- 17. 使用Web服務返回記錄集
- 18. 使用cURL與127.0.0.1連接到Django dev服務器不工作
- 19. HttpContext.Current.Request.ServerVariables [「REMOTE_ADDR」]返回IPv6
- 20. 使用MS Access在Web服務器中返回按需報告?
- 21. 如何在Tornado Web服務器上使用Django?
- 22. 爲什麼PHP腳本在服務器上返回空字符串
- 23. 爲什麼time()函數在不同的服務器上返回不同的值?
- 24. WSO2上的Web服務返回空ESB
- 25. 何時以及爲什麼要使用Django開發服務器?
- 26. System.Runtime.InteropServices.COMException在Web服務器上使用Redemption
- 27. 在web服務器上使用FoxPro表
- 28. 在Web服務器上使用DirectoryInfo
- 29. Web服務器上的API Api調用返回404
- 30. asp.net web api json不在服務器上返回
請求如何從Web服務器傳遞到Django應用程序? – 2010-01-27 06:11:31