http header REMOTE_ADDR
被這個整。 RFC文件連結 這個不一定是代表client的真實IP。因為unix的socket本來就不該有remote_addr這個參數,gunicorn在這邊就會把它設定為空值,並且把nginx傳過來的remote_addr加到 X-Forwarded-For中 。所以照說不該用這個變數來判斷client的ip。但使用到的一些lib就剛好有這個問題讓我搞了一段時間。django-debug-toolbar就是你!爬文好累啊! github相關討論 連結 。 SO相關文 http://stackoverflow.com/questions/4581789/how-do-i-get-user-ip-address-in-django 連出來 http://esd.io/blog/flask-apps-heroku-real-ip-spoofing.html 結論,鑽牛角尖會讓肚子餓。 P.S.我可能錯怪debug-toolbar了,因為如果用上面那個解法的話那這麼定義是沒問題的。