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


Posted in PHP onMay 16, 2016

本文实例为大家分享了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 相关文章推荐
PHP+DBM的同学录程序(3)
Oct 09 PHP
一贴学会PHP 新手入门教程
Aug 03 PHP
关于php mvc开发模式的感想
Jun 28 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
Jun 28 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
PHP使用递归生成文章树
Apr 21 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
php pdo oracle中文乱码的快速解决方法
May 16 #PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 #PHP
Yii2 assets清除缓存的方法
May 16 #PHP
php使用curl通过代理获取数据的实现方法
May 16 #PHP
php实现转换html格式为文本格式的方法
May 16 #PHP
php中array_unshift()修改数组key注意事项分析
May 16 #PHP
thinkPHP3.2简单实现文件上传的方法
May 16 #PHP
You might like
php读取html并截取字符串的简单代码
2009/11/30 PHP
php数组去重的函数代码
2013/02/03 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
推荐dojo学习笔记
2007/03/24 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
Bootstrap插件全集
2016/07/18 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
python 字典有序并写入json文件过程解析
2019/09/30 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
计算机网络及管理学专业求职信
2014/06/05 职场文书
师德师风剖析材料
2014/09/30 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
超市工作总结范文2014
2014/12/19 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Java实现简易的分词器功能
2021/06/15 Java/Android