我个人非常喜欢ip-api.com
它的使用非常简单,并且是一个示例PHP代码countryCode
会很简单地给你你需要的。您可以做更多的工作,也可以阅读其中的完整文档,但对于您列出的特定需求,下面是一个示例代码:
$ip = $_SERVER[\'REMOTE_ADDR\'];
$query = @unserialize(file_get_contents(\'http://ip-api.com/php/\' . $ip));
$geo = $query[\'countryCode\'];
剩下的是一个简单的if
$geo == \'US\'
做任何其他事情做其他事情。这就差不多了,实现起来非常简单,您不需要安装任何东西。MaxMind库很好,但对某些人来说,它可能很重,很难管理。
祝你好运
更新1[php](2018年3月5日)回复您的电子邮件,切换到JSON
相反,与现在的情况没有太大不同。唯一改变的一行是:
$query = json_decode(file_get_contents(\'http://ip-api.com/json/\' . $ip), true);
如果要使用回调函数,只需执行以下操作:
$query = json_decode(file_get_contents(\'http://ip-api.com/json/\' . $ip . \'?callback=<function>\'), true);
我建议您使用
true
参数打开
json_decode
获取数组以便更容易操作。
更新2[jquery](2018年3月5日)
我刚刚意识到,在你的电子邮件中,你提到了jquery,虽然我个人会选择上面的PHP方法,但下面是一个如何使用jquery实现相同功能的示例。
var ip = ...;
var query = $.getJSON(
"http://ip-api.com/json/"+ ip,
function (json) {
var whatever = json.whatever;
// where whatever is something that is returned
// such as status aka json.status
// look at what is returned to see what you need
});
。。。意味着ip,但是您将获得它。实际上不需要回调,因为您可以在上面的函数中执行任何您想要的操作,仅此而已。