获取客户端公共 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地址[重复]