Django獲取客戶端IP方法

使用django來獲取用戶訪問的IP地址,如果用戶是正常情況下

request.META['REMOTE_ADDR']

可以獲得用戶的IP地址。但是有些網(wǎng)站服務(wù)器會(huì)使用ngix等代理http,或者是該網(wǎng)站做了負(fù)載均衡,導(dǎo)致使用remote_addr抓取到的是1270.0.1,這時(shí)使用HTTP_X_FORWARDED_FOR才獲得是用戶的真實(shí)IP。推薦使用以下代碼:

if request.META.has_key('HTTP_X_FORWARDED_FOR'):

ip =? request.META['HTTP_X_FORWARDED_FOR']

else:

ip = request.META['REMOTE_ADDR']

參考鏈接:http://m.blog.csdn.net/bravezhe/article/details/7374934

使用以上方法在服務(wù)器上出現(xiàn)添加的頁面無法訪問,用print(request.META['HTTP_X_FORWARDED_FOR']) 和 print(request.META['REMOTE_ADDR'])前者打印出客戶端正常IP后者打印處127.0.0.1證明IP獲取正常(網(wǎng)站服務(wù)器使用的是nginx),所以

if request.META.has_key('HTTP_X_FORWARDED_FOR'): 此處語法應(yīng)該有錯(cuò)誤

最后去掉該判斷語句,網(wǎng)站正常訪問。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容