如何获得“真正的”用户IP地址?

时间:2012-10-25 19:57:46

标签: django geoip

我试图获得“真正的”用户IP地址,它正在工作,但我没有得到我自己的IP(真正的一个),用谷歌地图检查IP,将其转换为长 - 拉,谷歌地图显示我的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

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

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

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

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

http://html5demos.com/geo

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

答案 1 :(得分:1)

你将无法获得比这更精确的东西。报告的IP地址是正确的,但IP地址位置取决于ISP。对于台式计算机来说,它就像它一样好。

您当前正在检索的IP是您的应用程序收到的IP,因为所有Web应用程序都知道,就是您,但您可能会在代理或VPN之后,应用程序永远不会知道。