亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在django中獲取用戶IP地址?

如何在django中獲取用戶IP地址?

繁花如伊 2019-08-09 15:25:51
如何在django中獲取用戶IP地址?如何在django中獲取用戶的IP?我有這樣的觀點:# Create your viewsfrom django.contrib.gis.utils import GeoIPfrom django.template import  RequestContextfrom django.shortcuts import render_to_responsedef home(request):   g = GeoIP()   client_ip = request.META['REMOTE_ADDR']   lat,long = g.lat_lon(client_ip)   return render_to_response('home_page_tmp.html',locals())但我得到這個錯誤:KeyError at /mypage/     'REMOTE_ADDR'     Request Method: GET    Request URL:    http://mywebsite.com/mypage/     Django Version: 1.2.4     Exception Type: KeyError     Exception Value:         'REMOTE_ADDR'     Exception Location: /mysite/homepage/views.py in home, line 9     Python Executable:  /usr/bin/python    Python Version: 2.6.6     Python Path:    ['/mysite', '/usr/local/lib/python2.6/dist-packages/flup-1.0.2-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages', '/usr/lib/pymodules/python2.6']     Server time:    Sun, 2 Jan 2011 20:42:50 -0600
查看完整描述

3 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

def get_client_ip(request):
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip

確保正確配置了反向代理(如果有)(例如,mod_rpaf為Apache安裝)。

注意:以上使用了第一X-Forwarded-For,但您可能想要使用最后一項(例如,在Heroku的情況下:在Heroku上獲取客戶端的真實IP地址)

然后將請求作為參數傳遞給它;

get_client_ip(request)


查看完整回答
反對 回復 2019-08-09
  • 3 回答
  • 0 關注
  • 2160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號