WordPress 教程:新浪 IP 地址库获取用户所在城市信息

无评论

作者照片

By 霜天

第一步:将下列代码放置到WordPress主题模板函数 functions.php 闭合中:

//获取用户IP地址
function getip(){
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
        $ip = getenv("HTTP_CLIENT_IP");
    } else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
        $ip = getenv("HTTP_X_FORWARDED_FOR");
    } else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
        $ip = getenv("REMOTE_ADDR");
    } else  if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
        $ip = $_SERVER['REMOTE_ADDR'];
    } else {
        $ip = "unknown";
    }
    return $ip;
}
// 新浪IP查询接口获取IP所在地
function getlocation($ip='') {
    empty($ip) && $ip = getip();
    if($ip=="127.0.0.1") return "本机地址";	
    $api = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip"; 
    $json = @file_get_contents($api); 
    $arr = json_decode($json,true);
    $country = $arr['country']; 
    $province = $arr['province']; 
    $city = $arr['city']; 
    if((string)$country == "中国"){
        if((string)($province) != (string)$city){
            $_location = $province.$city;
        }else{
            $_location = $country.$city;      
        }
    }else{
        $_location = $country;
    }
    return $_location;
}

第二步:输出用户地理位置

<?php echo getlocation();?>

发表评论