/** * 输出:地区信息-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'); } } }
/** * 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; }