繁体   English   中英

freegeoip不再起作用

[英]freegeoip doesn't work anymore

几个月前,我创建了一个代码,用于检测访问者所在的国家并显示合法的饮酒年龄。 欧盟国家/地区为18,其他国家/地区为21。

我正在使用freegeoip。

该代码很好用,但是现在我注意到它不再起作用了。

    $.get("http://freegeoip.net/json/", function (response) {
    $("#ip").html("IP: " + response.ip);
    $("#country_code").html(response.country_code);
    if(response.country_code=='AL','AD','AT','BY','BE','BA','BG','HR','CY','CZ','DK','EE','FO','FI','FR','DE','GI','GR','HU','IS','IE','IT','LV','LI','LT','LU','MK','MT','MD','MC','NL','NO','PL','PT','RO','RU','SM','RS','SK','SI','ES','SE','CH','UA','VA','RS','IM','RS','ME') {
        $(".age").html("18");
    } else {
        $(".age").html("21");
    }
}, "jsonp");

在这里,我不考虑年龄:

<span>ARE YOU</span> OVER <span class="age"></span>?

我认为问题出在freegeoip中,但我无法解决。

您也可以像freegeoip一样使用ip-api.com:

function getDataOfIp($ip) {
    try {
        $pageContent = file_get_contents('http://ip-api.com/json/' . $ip);
        $parsedJson  = json_decode($pageContent);
        return [
            "country_name" => $parsedJson->country,
            "country_code" => $parsedJson->countryCode,
            "time_zone" => $parsedJson->timezone
        ];
    } 
    catch (Exception $e) {
        return null;
    }
}

我刚刚找到问题的答案。 我注意到freegeoip.net网站无法正常工作,因此我更改了服务。

我将http://freegeoip.net/json/替换为http://getcitydetails.geobytes.com/GetCityDetails?callback=?

并添加了<script language="Javascript" src="http://gd.geobytes.com/gd?after=-1&variables=GeobytesLocationCode,GeobytesCode,GeobytesInternet,GeobytesFqcn"></script>

现在,代码可以再次使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM