哎。。。。虽说是发干货,但是也不知道从何写起 ::aru:knife::
就在今晚!没错!!!今晚!!!薄荷荷给我说我的代挂授权站卡,于是乎我就开始着手分析这个问题,一开始以为是sql的问题,因为授权站的数据库比较庞大,经过几轮排查发现没有什么鸟问题 ::aru:blood:: ,这尼玛我就头大了,后来不经意间脑海中闪过一个骚操作,因为我发现前几天每次查看日志的时候就会卡的吃屎,今天直接502进不去了,emmmm开始看代码,然后下面一行代码引起了我的注意

$city=get_ip_city($clientip);
$DB->query("insert into `auth_log` (`uid`,`type`,`date`,`city`,`data`) values ('".$udata['user']."','查看日志','".$date."','".$city."','无')");

可以看出,在每次查看日志的时候会获取一下ip归属的城市地址然后写入auth_log这个表,sql部分肯定没问题的,然后我在function.php找到了get_ip_city这个函数,代码如下:

function get_ip_city($ip)
{
    $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=';
    @$city = curl_get($url . $ip);
    $city = json_decode($city, true);
    if ($city['city']) {
        $location = $city['province'].$city['city'];
    } else {
        $location = $city['province'];
    }
    if($location){
        return $location;
    }else{
        return false;
    }
}

看起来没什么卵问题啊。。。。调用的新浪ip库,emmmm访问一下看看返回什么,纳尼?!!根本无法访问进去!我特么瞬间心中无数只草泥马,原来就是这鬼玩意炸了,然后百度找了找,发现淘宝也有个ip库,地址:http://ip.taobao.com/instructions.html,用自己蹩脚的技术写了一个函数,因为我授权站是二开的彩虹的程序,相信也有很多人用他的程序吧,他程序都用的新浪ip库,所以呢都是炸的。。。。。说那么多屁话没用,直接上代码

function get_ip_city($ip)
{
    $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
    $ipinfo=json_decode(file_get_contents($url));
    if($ipinfo->code=='1'){
        return false;
    }
    $location = $ipinfo->data->region.$ipinfo->data->city;
    return $location;
}

妈耶,感觉我发的不是教程而是写日记了。。。。不管了,希望我这篇文章可以帮助到一些朋友!

这几天感觉淘宝的已经不再稳定,具体新方法我已经放出[post cid="1819" /]