为了账号安全,请及时绑定邮箱和手机立即绑定

在数据库中注册时,是否有任何简单的方法来存储用户位置

在数据库中注册时,是否有任何简单的方法来存储用户位置

qq_笑_17 2021-03-28 14:46:27
我有的用户注册表格django。我想知道用户正在注册的城市。有什么办法可以让我获得IP address用户的青睐,然后以某种方式获得该cityIP的。使用一些API或something
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

REMOTE_ADDR的属性request.META。检查此帖子以获取有关远程地址的完整解决方案。


注册时,您可以执行以下操作:


addr = request.META.get('REMOTE_ADDR', None)

并保存此IP地址。


现在,您可以使用以下方式获取城市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']


查看完整回答
反对 回复 2021-04-02
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

不是以任何可靠的方式,或者至少不是在Django中。问题在于用户IP通常是动态的,因此地址每两天更改一次。同样,一些ISP很快将开始为大量用户使用单个IP(忘记了这个称呼),因为它们用尽了IPv4 IP地址...换句话说,该ISP中的所有用户在整个状态甚至国家/地区将只有一个IP地址。

因此,使用IP是不可靠的。您可能会以合理的准确性弄清楚用户所在的国家或地区,但是我的建议是不要将IP用于记录和许可目的(例如,阻止垃圾邮件IP)。

但是,如果您需要用户位置,则可以使用HTML5位置API,因为它可以利用其他方法(例如在电话中使用GPS传感器)来获取更准确的位置,因此可以更好地拍摄。


查看完整回答
反对 回复 2021-04-02
  • 3 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号