下面就是实现的过程,
首先,访问的文章,这个很好说,记录id就行
获取用户ip,这个函数网上也是一抓一大把,我找了一个解析做得比较详细的贴在下面
function getIP(){
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
if(preg_match('/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/', $realip))
return $realip;
else
return '';
}
根据ip获取所在地的信息,这个网上也很多,主流的是调新浪和淘宝的接口,我找两个跑了一下
很不走运,两个都跑不通.然后我发现这些文章的发布时间基本都是18年之前,我就想,是不是访问量太大了,官方做了升级,然后我去个淘宝的ip库,果然发现了一个好玩的提示
居然提示我少了一个参数,然后经过官网的测试,找到了缺失的参数,如下图
function getCity($ip = '')
{
if($ip == ''){
$data = '';
}else{
$url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip.'&accessKey=alibaba-inc';
$ip=json_decode(file_get_contents($url));
if((string)$ip->code=='1'){
return false;
}
$data = (array)$ip->data;
}
return $data;
}
print_r(getCity('62.210.139.12'));
希望阿里爸爸不会怪我,无量天尊~
友情提示,curl比file_get_contents性能更稳定