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了,因為如果用上面那個解法的話那這麼定義是沒問題的。
這個不一定是代表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了,因為如果用上面那個解法的話那這麼定義是沒問題的。
留言
張貼留言