PHP 根據IP地址獲取所在城市

header('Content-Type:text/html;Charset=utf-8');
function GetIp(){ php

$realip = ''; html

$unknown = 'unknown'; json

if (isset($_SERVER))spa

{ code

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown))orm

{ htm

$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); ip

foreach($arr as $ip)utf-8

{ get

$ip = trim($ip);

if ($ip != 'unknown'){

$realip = $ip;

break;

}

}

}else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown))

{

$realip = $_SERVER['HTTP_CLIENT_IP'];

}else if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown))

{

$realip = $_SERVER['REMOTE_ADDR'];

}else{

$realip = $unknown;

}

}else{

if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown))

{

$realip = getenv("HTTP_X_FORWARDED_FOR");

}else if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){

$realip = getenv("HTTP_CLIENT_IP");

}else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), $unknown)){

$realip = getenv("REMOTE_ADDR");

}else{

$realip = $unknown;

}

}

$realip = preg_match("/[\d\.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;

return $realip;

}

function GetIpLookup($ip = '')
{

if(empty($ip))

{

$ip = GetIp();

}

$res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);

if(empty($res))

{

return false;

}

$jsonMatches = array();

preg_match('#\{.+?\}#', $res, $jsonMatches);

if(!isset($jsonMatches[0]))

{

return false;

}

$json = json_decode($jsonMatches[0], true);

if(isset($json['ret']) && $json['ret'] == 1)

{

$json['ip'] = $ip;

unset($json['ret']);

}else{

return false;

}

return $json;

}

$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址 var_dump($ipInfos);

相關文章
相關標籤/搜索