紫影基地

 找回密码
 立即注册
查看: 566|回复: 0

用PHP如何实现获取IP地址,你知道哪些方法?

[复制链接]
阅读字号:

2006

主题

2121

帖子

21万

积分

超级版主

Rank: 8Rank: 8

积分
211131
发表于 2022-10-25 18:32:47 | 显示全部楼层 |阅读模式

用PHP如何实现获取IP地址,你知道哪些方法?


本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。


    php怎么实现ip收集?


    php获取访问者IP地址汇总


    在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。


    下面我们就来给大家汇总一下常用的几种获取IP地址的方法。


    //方法1:


$ip = $_SERVER["REMOTE_ADDR"];

echo $ip;

    //方法2:


    代码如下:


$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];

$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];

echo $user_IP;

    //方法3:


function getRealIp()

{

  $ip=false;

  if(!empty($_SERVER["HTTP_CLIENT_IP"])){

    $ip = $_SERVER["HTTP_CLIENT_IP"];

  }

  if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

    for ($i = 0; $i < count($ips); $i++) {

      if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {

        $ip = $ips[$i];

        break;

      }

    }

  }

  return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);

}

echo getRealIp();

    //方法4:


if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])

{

  $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];

}

elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])

{

  $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];

}

elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])

{

  $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];

}

elseif (getenv("HTTP_X_FORWARDED_FOR"))

{

  $ip = getenv("HTTP_X_FORWARDED_FOR");

}

elseif (getenv("HTTP_CLIENT_IP"))

{

  $ip = getenv("HTTP_CLIENT_IP");

}

elseif (getenv("REMOTE_ADDR"))

{

  $ip = getenv("REMOTE_ADDR");

}

else

{

  $ip = "Unknown";

}

echo $ip ;

    //方法5:


if(getenv('HTTP_CLIENT_IP')) {

  $onlineip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR')) {

  $onlineip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR')) {

  $onlineip = getenv('REMOTE_ADDR');

} else {

  $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];

}

echo $onlineip;

    //方法6:


print "您的IP地址是:";



if(!empty($_SERVER["HTTP_CLIENT_IP"])){

$cip = $_SERVER["HTTP_CLIENT_IP"];

}

elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){

$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];

}

elseif(!empty($_SERVER["REMOTE_ADDR"])){

$cip = $_SERVER["REMOTE_ADDR"];

}

else{

$cip = "无法获取!";

}

print $cip;

    关于用PHP实现获取IP地址的方法就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多,大家可以关注群英网络其它的相关文章。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫影基地

GMT+8, 2025-1-27 10:40 , Processed in 0.114886 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表