Example #1
0
 public static function detectAllLocation()
 {
     $views = View::all();
     foreach ($views as $view) {
         if ($view->location != "") {
             continue;
         }
         $ip = $view->ip;
         $client = new Client(['base_uri' => 'http://ip.taobao.com', 'timeout' => 5.0]);
         try {
             $response = $client->request('GET', '/service/getIpInfo.php', ['query' => "ip={$ip}"]);
             $body = json_decode($response->getBody());
             if ($body->code == 0) {
                 $country = $body->data->country;
                 $area = $body->data->area;
                 $region = $body->data->region;
                 $city = $body->data->city;
                 $isp = $body->data->isp;
                 $location = "{$country}-{$area}-{$region}-{$city}-{$isp}";
             } else {
                 $location = "获取失败";
             }
             $view->location = $location;
         } catch (\Exception $e) {
             Log::warning($e->getMessage());
         }
         $view->save();
     }
 }