1

我试图获取“真实”用户 ip 地址,它正在工作,但我没有得到自己的 ip(真实的),用谷歌地图检查 ip,将其转换为 long-lat 后,谷歌地图显示我的 ISP 的位置。

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

我想要做的是显示来自用户发送文章的确切位置的地图。

任何的想法?

谢谢

4

2 回答 2

1

服务器端唯一可用的方法是 IP,它将始终解析为您的 ISP。

更高级的方法存在安全风险,因此会提示用户允许它们(因此只有客户端可用)。查看 HTML5 GEO 了解更多信息:

http://html5demos.com/geo

http://dev.w3.org/geo/api/spec-source.html

于 2012-10-25T20:00:42.250 回答
1

你将无法得到比这更精确的东西。报告的 IP 地址是正确的,但 IP 地址位置取决于 ISP。对于台式电脑来说,这是最好的。

您当前正在检索的 IP 是您的应用程序接收到的 IP,对于所有网络应用程序都知道,那就是您,但您可能在代理或 VPN 之后,而应用程序永远不会知道。

于 2012-10-25T20:01:18.517 回答