PHP获取用户访问IP地址的5种方法

 更新时间:2016年05月16日 15:52:59   作者:一九九七年那是  
这篇文章主要为大家详细介绍了PHP获取用户访问IP地址的5种方法,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了5种PHP获取用户访问IP地址的方法,供大家参考,具体内容如下

<?php                                                                 //方法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; 

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

相关文章

  • 数据库中排序的对比及使用条件详解

    数据库中排序的对比及使用条件详解

    PHP与MySQL数据库中排序的对比及使用条件是本文我们主要要介绍的内容,通常来说,执行效率需要考虑CPU、内存和硬盘等的负载情况
    2012-02-02
  • PHP实现生成唯一会员卡号

    PHP实现生成唯一会员卡号

    当每个会员登录进来,在查询数据库的情况下生成一组数字或者是数字与字母组合不重复的会员卡号,接下来,给大家演示一个小程序,基于php实现生成唯一会员卡号,有需要的朋友一起来学习吧
    2015-08-08
  • PHP7内核CGI与FastCGI详解

    PHP7内核CGI与FastCGI详解

    在本篇文章里小编给大家整理了关于PHP7内核CGI与FastCGI的相关知识点内容,需要的朋友们学习下。
    2019-04-04
  • php class类的用法详细总结

    php class类的用法详细总结

    以下是对php中class类的用法进行了详细的总结介绍,需要的朋友可以过来参考下
    2013-10-10
  • php中使用Akismet防止垃圾评论的代码

    php中使用Akismet防止垃圾评论的代码

    Akismet是一个优秀的防Spam垃圾留言的优秀插件,绝大多数wordpress blogger都在使用,有了akismet之后,基本上不用担心垃圾留言的烦恼了。
    2011-06-06
  • PHP设计模式之装饰器模式定义与用法详解

    PHP设计模式之装饰器模式定义与用法详解

    这篇文章主要介绍了PHP设计模式之装饰器模式,结合实例形式详细分析了php装饰器模式的概念、原理、定义、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-04-04
  • PHP基于XMLWriter操作xml的方法分析

    PHP基于XMLWriter操作xml的方法分析

    这篇文章主要介绍了PHP基于XMLWriter操作xml的方法,结合实例形式分析了php使用XMLWriter生成及解析xml数据的操作技巧,需要的朋友可以参考下
    2017-07-07
  • 一些PHP写的小东西

    一些PHP写的小东西

    一些PHP写的小东西...
    2006-12-12
  • php文件读取方法实例分析

    php文件读取方法实例分析

    这篇文章主要介绍了php文件读取方法,实例分析了php读取文件行、字符、固定位置等的相关技巧,需要的朋友可以参考下
    2015-06-06
  • php图片加中文水印实现代码分享

    php图片加中文水印实现代码分享

    php中要给中文加水印需要作一些简单的处理,一就是要把字符转换成gbk,还有就是要加载中文字体哦,有了这两个条件在图片加中文水印就简单了。
    2012-10-10

最新评论