• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

了解php获取客户端ip的方法

php 搞代码 4年前 (2022-01-22) 19次浏览 已收录 0个评论

本文讲解了如何通过php获取客户端ip的方法

获取ip函数如下:

function getIP() {    $realip = ''; //设置默认值    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {        $realip = $_SERVER['HTTP_X_FORWARDED_FOR'];    } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {        $realip = $_SERVER['HTTP_CLIENT_IP'];    } else {        $realip = $_SERVER['REMOTE_ADDR'];    }    preg_match('/^((?:\d{1,3}\.){3}\d{1,3})/',$realip,$match);        if($match && ipType($match[0]) == 'InterNet网地址'){                return  $match[0];        }else{                return  false;        }}

//互联网允许使用IP地址

function ipType($ip) {    $iplist = explode(".", $ip);    if ($iplist[0] >= 224 && $iplist[0] <= 239)                return '多播';        if ($iplist[0] >= 240 && $iplist[0] <= 255)        return '保留';    if (preg_match('/^198\.51\.100/', $ip))        return 'TEST-NET-2,文档和示例';    if (preg_match('/^203\.0\.113/', $ip))        return 'TEST-NET-3,文档和示例';    if (preg_match('/^192\.(18|19)\./', $ip))        return '网络基准测试';    if (preg_match('/^192\.168/', $ip))        return '专用网络[内部网]';    if (preg_match('/^192\.88\.99/', $ip))        return 'ipv6to4中继';    if (preg_match('/^192\.0\.2\./', $ip))        return 'TEST-NET-1,文档和示例';    if (preg_match('/^192\.0\.0\./', $ip))        return '保留(IANA)';    if (preg_match('/^192\.0\.0\./', $ip))        return '保留(IANA)';    if ($iplist[0] == 172 && $iplist[1] <= 31 && $iplist[1] >= 16)        return '专用网络[内部网]';    if ($iplist[0] == 169 && $iplist[1] == 254)        return '链路本地';    if ($iplist[0] == 127)        return '环回地址';    if ($iplist[0] == 10)        return '专用网络[内部网]';    if ($iplist[0] == 0)        return '本网络(仅作为源地址时合法)';    return 'InterNet网地址';}

网上常见获取ip函数如下:

public function get_real_ip() {    static $realip;    if (isset($_SERVER)) {        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {            $realip = $_SERVER['HTTP_X_FORWARDED_FOR'];        } else if (isset($_SERVER['HTTP_CLIENT_IP'])) {            $realip = $_SERVER['HTTP_CLIENT_IP']<i>本文@来#源gaodai$ma#com搞$$代**码网</i><strong>搞代gaodaima码</strong>;        } else {            $realip = $_SERVER['REMOTE_ADDR'];        }    } else {        if (getenv('HTTP_X_FORWARDED_FOR')) {            $realip = getenv('HTTP_X_FORWARDED_FOR');        } else if (getenv('HTTP_CLIENT_IP')) {            $realip = getenv('HTTP_CLIENT_IP');        } else {            $realip = getenv('REMOTE_ADDR');        }    }    return $realip;}

’REMOTE_ADDR’ ,’HTTP_X_FORWARDED_FOR’,’HTTP_CLIENT_IP’之间的区别?


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:了解php获取客户端ip的方法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址