PHP获取客户端IP的方法

PHP获取客户端IP的方式有很多,我这里提取了几大CMS程序获取IP的方法,然后总结整理,得到下面这个获取客户端IP地址的PHP函数,你可以直接把这个函数复制的你的项目中,在需要的地方直接调用就好了,也可以把这两个函数封装到自己的工具类里面,不过需要稍加修改。

这个获取的IP的真实性还是有一些问题的,比如如果用户使用了梯子,那么这个可能获取到的IP就是梯子的IP,而不是用户电脑的真实IP,不过对于大多啥情况下获取的IP地址是真实的,所有大可放心拿去在项目中使用。

如果你有更好的获取客户端真实IP的方法,希望你在下面的留言中分享出来,让我也见识见识真正的行家!

我试了下不好用 先留着把 回头有时间改造下

以下就是两个函数的代码

/**
 * 获取用户IP
 * @return string
 */
function getIp()
{
    $ip = '未知IP';
    if(!empty($_SERVER['HTTP_CLIENT_IP']))
    {
        return is_ip($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : $ip;
    }
    elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        return is_ip($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $ip;
    }
    else
    {
        return is_ip($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : $ip;
    }
}


/**
 * 判断是否是IP地址
 * @param $str
 * @return bool|int
 */
function is_ip($str)
{
    $ip = explode('.', $str);
    for($i=0; $i<count($ip); $i++)
    {
        if($ip[$i]>255)
        {
            return false;
        }
    }
    return preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $str);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,337评论 25 709
  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 9,341评论 1 66
  • linPhone是我们公司产品的核心,进公司也有两个多月了。平时很少了解和接触到linPhone,这次要做个语音识...
    靠北的北阅读 8,487评论 3 5
  • 今天是2016年5月14号,今天事业单位考试,一年前的今天,我应该刚到新单位,一切应该都不是特别满意,但还是...
    路人雨阅读 4,520评论 0 0