Rumah >pembangunan bahagian belakang >tutorial php >PHP实现获取客户端IP并获取IP信息的方法

PHP实现获取客户端IP并获取IP信息的方法

墨辰丷
墨辰丷asal
2018-06-12 14:40:291360semak imbas

这篇文章主要介绍了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中魔术方法的定义和使用

Atas ialah kandungan terperinci PHP实现获取客户端IP并获取IP信息的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn