获取客户端公共 IP 的最可靠方法

Posted

技术标签:

【中文标题】获取客户端公共 IP 的最可靠方法【英文标题】:Most reliable way to get client public IP 【发布时间】:2015-02-03 06:03:04 【问题描述】:

我一直在努力在 asp.net 2.0 应用程序中可靠地获取客户端公共 IP。

当我使用这个http://jsonip.appspot.com/?callback=getip 服务时,我发现它可能会随机变得无法访问,并且会通过以下消息而成为我的应用程序的显示停止器。

"超过配额

此应用暂时超出其服务配额。请试试 稍后再来。”

我在这里http://l2.io/ip.js?var=userip 尝试了另一种替代服务。这也不可靠,因为它也可能随机无法访问。

这里有没有人要求获得客户端公共 IP 并实施可靠的解决方案?

【问题讨论】:

如果您想在代码中获取它,那么这可能会对您有所帮助***.com/questions/19285957/… 【参考方案1】:

为了获得更高的可靠性,您可以使用多个 API。一旦其中一个在给定的超时时间内没有响应,您就切换到另一个 API。以下是 IP 2 位置 API 的概述:https://github.com/tokkonopapa/WordPress-IP-Geo-Block/blob/6d883a71b7787e2c68e28f43f6afbaffdb27c679/README.md#attribution

另一种可能性是保留 MaxMind GeoLite 数据库的本地副本,并从该数据库而不是 API 获取结果。您可以在此处找到更多信息:http://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs

最后但同样重要的是,您可以设置自己的 API。 freegeoip.net 或我自己的 geoip.nekudo.com 等各种 API 都是开源的,因此您可以托管自己的副本。

【讨论】:

感谢 github 链接。现在关于使用多个 API,我遇到了一个问题并在 SO 上发布了一个问题,但到目前为止还没有答案,或者你知道更好的实现。这是问题***.com/questions/28235537/…

以上是关于获取客户端公共 IP 的最可靠方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在servlet java中获取客户端公共IP地址[重复]

获取客户端公共 IP [重复]

从Android访问Windows WebService获取IP地址

无法在我的服务器上获取已连接客户端的公共 IP

获取 node.js 应用程序的公共 IP 地址

获取 WCF 的客户端 IP 地址,发布操作