코드는 매우 간결하고 기능은 매우 실용적입니다. 여기서는 너무 복잡하게 설명하지 않고 그냥 소개하겠습니다.
/**
* 클라이언트 IP 얻기
* @param 정수 $type 반환 유형 0:string,1:long
* @return 문자열|긴
*/
함수 getClientIp($type = 0) {
$ip = NULL;
If (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = 폭발(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
If(false !== $pos) unset($arr[$pos]);
$ip = 트림($arr[0]);
}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
$long = sprintf("%u", ip2long($ip));
$ip = $long ? 배열($ip, $long) : 배열('0.0.0.0', 0);
$ip[$type];
반환
}
/**
* IP 정보 얻기
* @param string|long $ip IP 주소
* @return 배열
*/
함수 getIpInfo($ip)
{
If (is_long($ip)) {
$ip = long2ip($ip);
}
$api = 'http://ip.taobao.com/service/getIpInfo.php';
$ret = file_get_contents($api . '?ip=' . $ip);
$ret = json_decode($ret, true);
If ($ret['code'] == 0) {
return $ret['data'];
}
배열() 반환;
}
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.