使用 maxmind geoip2 呼出城市名称

Posted

技术标签:

【中文标题】使用 maxmind geoip2 呼出城市名称【英文标题】:Call out the city name using maxmind geoip2 【发布时间】:2014-03-11 13:26:02 【问题描述】:

我使用这个简单的代码通过 maxmind 服务 (geoip2) 调用城市名称。它工作得很好,我也从这个网站上的某个人那里得到了这个代码,多亏了他。

问题是当用户的位置不属于任何城市时,什么都不会出现,我的标题会看起来很愚蠢,就像“abc offer from...”

当此脚本无法呼出城市名称时,请替换为“您的城市”。

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="//j.maxmind.com/js/apis/geoip2/v2.0/geoip2.js"></script>

<script>
geoip2.cityISPOrg(function (response) 

$("#city").html(response.city.names.en);

, null,  w3cGeolocationDisabled: true );
</script>

<p>
 <span id="city"></span>,
</p>

【问题讨论】:

你的意思是如果没有城市那么你想显示“没有城市”什么的? 【参考方案1】:
geoip2.cityISPOrg(function (response) 

  if (response && response.city && response.city.names && response.city.names.en) 
    $("#city").html(response.city.names.en);
  
  else 
    $("#city").html("your city");
  
, null,  w3cGeolocationDisabled: true );

【讨论】:

谢谢约翰。我尝试了我们的脚本,它运行良好。这太棒了,非常感谢!【参考方案2】:

使用以下简单代码,并根据需要进行修改

<script type="text/javascript" src="//js.maxmind.com/js/apis/geoip2/v2.0/geoip2.js"></script>

<script type="text/javascript">

var onSuccess = function(location)
    alert(
        "Lookup successful:\n\n"
        + JSON.stringify(location, undefined, 4)
    );
;

var onError = function(error)
    alert(
        "Error:\n\n"
        + JSON.stringify(error, undefined, 4)
    );
;

geoip2.city(onSuccess, onError);

</script>

【讨论】:

所有错误都在 JavaScript 对象中作为第一个参数传递给 onError 函数。该对象包含两个键,代码和错误。 code 是机器可读的错误代码,不会改变。 error 是人类可读的错误描述。 谢谢Pratik Joshi,实际上我尝试了上面那个人的脚本,它成功了!我可怕的编码技能不允许我修改任何东西,但非常感谢您的回答。没想到这么快就得到答案!

以上是关于使用 maxmind geoip2 呼出城市名称的主要内容,如果未能解决你的问题,请参考以下文章

导入 com.maxmind.geoip2 无法解析

给定城市时查询国家/地区的 maxmind mmdb

MaxMind:将 GeoIP2 mmdb 加载到内存中以便快速读取

GeoIP2 MaxMind pom 和我本地的有啥区别?

MaxMind GeoIP2 没有 IPv6 的结果?

MaxMind 的 GeoIP2 java API 线程安全吗?