Exemple #1
0
 /**
  * 输出:地区信息-ip,地区信息默认被url encode
  * 可选&callback=xxxx参数指定回调函数
  * 可选&type=json参数指定使用json(IP=》地区信息)格式输出
  * 可选&f=raw参数指定不对地区信息进行urlencode,当type=json时,此参数值无效
  * @param  string $ip IP地址,可选,为null时优先选择$_GET['ip']、服务器抓取的客户端IP
  * @return void     
  */
 public function geoinfo($ip = null)
 {
     if (is_null($ip)) {
         if (!empty($_GET['ip'])) {
             $ip = $_GET['ip'];
         } else {
             $ip = g::ip();
         }
     }
     if (empty($ip)) {
         return;
     }
     $key = GeoTool::getAreaLogByIp($ip);
     // debugLog ( __CLASS__ . ':geo', $key.'-'.$ip );
     if (!empty($key)) {
         //
         // $value = (isset($_GET['f']) && 'raw'==$_GET['f'] ?$key:rawurlencode($key)).'-'.$ip;
         $value = $key . '-' . $ip;
         //
         $this->apiReturn(isset($_GET['type']) && 'json' == $_GET['type'] ? array($ip => $key) : $value, 0);
         // echo $value;
         if (!isset($_GET['ck']) || 'none' != $_GET['ck']) {
             setcookie('geoinfo', rawurlencode($key) . '-' . $ip, TIMESTAMP + 30 * 60, '/', '.56.com');
         }
     }
 }
Exemple #2
0
 /**
  * GetCityNameByIp
  *
  * @static
  * @access public
  * @return void
  */
 public static function getAreaNameByIp($ip = false)
 {
     $array = array();
     $ip = $ip ? $ip : g::ip();
     $city = GeoTool::convertIp($ip);
     if (preg_match('/局域网/', $city)) {
         return $array;
     }
     if (is_array($city) && $city['err'] === true) {
         return $array;
     }
     $city = explode('市', $city);
     if ($city[0]) {
         $array = explode('省', $city[0]);
     }
     return $array;
 }