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

我有的用户注册表格django。我想知道用户正在注册的城市。

有什么办法可以让我获得IP address用户的青睐,然后以某种方式获得该cityIP的。使用一些APIsomething


qq_笑_17
浏览 261回答 3
3回答

白衣染霜花

REMOTE_ADDR的属性request.META。检查此帖子以获取有关远程地址的完整解决方案。注册时,您可以执行以下操作:addr = request.META.get('REMOTE_ADDR', None)并保存此IP地址。现在,您可以使用以下方式获取城市GeoIP:from django.contrib.gis.utils import GeoIPg = GeoIP()addr = request.META.get('REMOTE_ADDR', None) #Or retrive this from the userprofile you saved while registeringcity = 'New York' #Or any default cityif addr:    city = g.city(addr)['city']

蓝山帝景

不是以任何可靠的方式,或者至少不是在Django中。问题在于用户IP通常是动态的,因此地址每两天更改一次。同样,一些ISP很快将开始为大量用户使用单个IP(忘记了这个称呼),因为它们用尽了IPv4 IP地址...换句话说,该ISP中的所有用户在整个状态甚至国家/地区将只有一个IP地址。因此,使用IP是不可靠的。您可能会以合理的准确性弄清楚用户所在的国家或地区,但是我的建议是不要将IP用于记录和许可目的(例如,阻止垃圾邮件IP)。但是,如果您需要用户位置,则可以使用HTML5位置API,因为它可以利用其他方法(例如在电话中使用GPS传感器)来获取更准确的位置,因此可以更好地拍摄。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python