>  기사  >  백엔드 개발  >  PHP는 클라이언트 IP를 얻고 IP 정보를 얻는 방법을 구현합니다.

PHP는 클라이언트 IP를 얻고 IP 정보를 얻는 방법을 구현합니다.

墨辰丷
墨辰丷원래의
2018-06-12 14:40:291328검색

이 글은 PHP에서 클라이언트 IP를 얻는 방법과 IP 정보를 얻는 방법에 대한 예제를 주로 소개합니다. 도움이 필요한 친구들이 와서 참고할 수 있습니다.

코드는 매우 간결하고 기능은 매우 실용적입니다. 여기서는 너무 복잡하게 설명하지 않고 직접 제시하겠습니다.

코드는 다음과 같습니다.

<?php
/**
 * 获取客户端IP
 * @param  integer $type 返回类型 0:string,1:long
 * @return string|long
 */
function getClientIp($type = 0) {
    $ip = NULL;
    if (isset($_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])) {
        $arr = explode(&#39;,&#39;, $_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]);
        $pos = array_search(&#39;unknown&#39;,$arr);
        if(false !== $pos) unset($arr[$pos]);
        $ip  = trim($arr[0]);
    }elseif (isset($_SERVER[&#39;HTTP_CLIENT_IP&#39;])) {
        $ip = $_SERVER[&#39;HTTP_CLIENT_IP&#39;];
    }elseif (isset($_SERVER[&#39;REMOTE_ADDR&#39;])) {
        $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
    }
    $long = sprintf("%u", ip2long($ip));
    $ip   = $long ? array($ip, $long) : array(&#39;0.0.0.0&#39;, 0);
    return $ip[$type];
}
/**
 * 获取IP信息
 * @param  string|long $ip  IP地址
 * @return array
 */
function getIpInfo($ip)
{
    if (is_long($ip)) {
        $ip = long2ip($ip);
    }
    $api = &#39;http://ip.taobao.com/service/getIpInfo.php&#39;;
    $ret = file_get_contents($api . &#39;?ip=&#39; . $ip);
    $ret = json_decode($ret, true);
    if ($ret[&#39;code&#39;] == 0) {
        return $ret[&#39;data&#39;];
    } 
    return array();
}

요약: 위 내용은 전체 내용입니다. 이 글의 내용이 모든 분들의 학습에 도움이 되기를 바랍니다.

관련 권장 사항:

PHP에서 참조 트리를 생성하는 방법

PHP는 phpmailer를 사용하여 이메일을 보냅니다.

PHP의 매직 메소드 정의 및 사용

위 내용은 PHP는 클라이언트 IP를 얻고 IP 정보를 얻는 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.