下面就是实现的过程,
- 首先,访问的文章,这个很好说,记录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|((1d{2})|([1-9]?d))).){3}(?:25[0-5]|2[0-4]d|((1d{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性能更稳定
文章来源于互联网:php 获取ip所在地