geo_ip.js 不工作

geo_ip.js is not working

我正在使用 "http://j.maxmind.com/app/geoip.js" 来支持多语言站点,但 this link 抛出 404 错误。

这里是错误

Failed to load resource: the server responded with a status of 404 (Not Found)
www.globalenglish.com/:913 Uncaught ReferenceError: geoip_country_code is not defined
chrome-extension://gllmlkidgbagkcikijiljllpdloelocn/contentscript.js:1849 www.globalenglish.com
getuid:1 GET https://api.bizographics.com/v2/getuid?api_key=422935bcbfc445d59f10758c288c…I%252bJLufjW0EE6tV4BHMF43u8yA9qpnPTK8G7tGxJuiy5ReJz%252fscH55wHNbnsJU%253d 403 (Forbidden)

我检查了 site here for new link, this link 抛出 401 错误。

我还检查了新 API here 但这对我也不起作用。 JS Link 有效但 geoip_country_code() is undefined

如何让它再次工作 !!!!这里是fiddle

谢谢

实际上,您可能错过了控制台中的一条消息:

Users of the GeoIP2 JavaScript API must register their domains at https://www.maxmind.com/en/javascript_domains

库加载失败,因为向 js.maxmind.com 域发出了一个请求,使用您当前的主机名(fiddle.jshell.net 在您的例子中)作为引荐来源网址,以确保客户端实际上正在制作一个来自授权主机名的请求。

遗憾的是,Maxmind 不提供 geoip api 到

http://j.maxmind.com/app/geoip.js

不再。虽然它提供了另一个 api as

http://js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js

但是根据 Maxmind 的网站,它需要域注册等。下面的 link 是旧 api 的克隆,现在有效期大约一年。

http://geoapi123.appspot.com/

我刚刚将它用于我的一个处于开发阶段的项目,以获得非常快速的解决方案。但我强烈建议您再次根据可信赖的服务更新您的代码。

一个工作的 jsfiddle 来展示如何在 here 上播放;它显示了这段代码:

$.ajax( {
            type: 'GET',
            url: '//geoapi123.appspot.com/',
            dataType: 'script',
            cache: true,
            success: function() {
                var geo = geoip_country_code() + '|' + geoip_region_name() + '|' + geoip_city() + '|' + geoip_latitude() + '|' + geoip_longitude();
                $('#results').html(geo);
            }
        });

更新: 我意识到这个答案仍然很有吸引力。请注意,自从我写这篇文章以来已经有好几年了。我分享的 URL 似乎不再起作用了。现在也有更好的方法来处理这个问题。

大家好,我正在使用此脚本,但我不知道为什么当我尝试重定向时 HTTPS 不起作用。它只适用于 HTTPS

    $.ajax({
        url: "http://api.petabyet.com/geoip",
        success: function(data) {
            switch (data.country_code) {
                case 'DE':
                    window.location.href = "https://google.com/de";
                    break;
               
                
            }
        }
    })

</script>