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

Posted

技术标签:

【中文标题】如何获得“真实”的用户 IP 地址?【英文标题】:How get the "real" user ip address? 【发布时间】:2012-10-25 19:57:46 【问题描述】:

我试图获取“真实”用户 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

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

有什么想法吗?

谢谢

【问题讨论】:

【参考方案1】:

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

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

http://html5demos.com/geo

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

【讨论】:

【参考方案2】:

您将无法获得比这更精确的信息。报告的 IP 地址是正确的,但 IP 地址位置取决于 ISP。对于台式电脑来说,这已经足够了。

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

【讨论】:

以上是关于如何获得“真实”的用户 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章

request.getRemoteAddr怎么获取用户真实的IP地址

如何通过中转服务器的Ip地址来获得真实的IP?

如何获得真实 IP? [关闭]

nginx如何获取自己的ip

如何获取网站用户的真实IP

从应用程序中,如果客户端安装了 ***,是不是有可能获得真实的 IP 地址?