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

时间:2015-02-03 06:03:04

标签: javascript asp.net geolocation ip-geolocation

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

当我使用此http://jsonip.appspot.com/?callback=getip服务时,我发现它可以随机变为无法访问&将通过以下消息&这成为了我的应用程序的显示阻止。

  

" 超过配额

     

此应用程序暂时超过其服务配额。请试试   再来一次。"

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

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

1 个答案:

答案 0 :(得分: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都是开源的,因此您可以托管自己的副本。