3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
REMOTE_ADDR的屬性request.META。檢查此帖子以獲取有關(guān)遠(yuǎn)程地址的完整解決方案。
注冊(cè)時(shí),您可以執(zhí)行以下操作:
addr = request.META.get('REMOTE_ADDR', None)
并保存此IP地址。
現(xiàn)在,您可以使用以下方式獲取城市GeoIP:
from django.contrib.gis.utils import GeoIP
g = GeoIP()
addr = request.META.get('REMOTE_ADDR', None) #Or retrive this from the userprofile you saved while registering
city = 'New York' #Or any default city
if addr:
city = g.city(addr)['city']

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
不是以任何可靠的方式,或者至少不是在Django中。問題在于用戶IP通常是動(dòng)態(tài)的,因此地址每?jī)商旄囊淮巍M瑯?,一些ISP很快將開始為大量用戶使用單個(gè)IP(忘記了這個(gè)稱呼),因?yàn)樗鼈冇帽M了IPv4 IP地址...換句話說,該ISP中的所有用戶在整個(gè)狀態(tài)甚至國(guó)家/地區(qū)將只有一個(gè)IP地址。
因此,使用IP是不可靠的。您可能會(huì)以合理的準(zhǔn)確性弄清楚用戶所在的國(guó)家或地區(qū),但是我的建議是不要將IP用于記錄和許可目的(例如,阻止垃圾郵件IP)。
但是,如果您需要用戶位置,則可以使用HTML5位置API,因?yàn)樗梢岳闷渌椒ǎɡ缭陔娫捴惺褂肎PS傳感器)來獲取更準(zhǔn)確的位置,因此可以更好地拍攝。
添加回答
舉報(bào)