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学习教程之第2天
Jun 15 PHP
php学习笔记(三)操作符与控制结构
Aug 06 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
php生成动态验证码gif图片
Oct 19 PHP
PHP数组函数知识汇总
May 12 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
php 7新特性之类型申明详解
Jun 06 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
php接口实现拖拽排序功能
Apr 23 PHP
详解PHP PDO简单教程
May 28 PHP
PHP针对redis常用操作实例详解
Aug 17 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
ajax php 实现写入数据库
2009/09/02 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
python实现自动更换ip的方法
2015/05/05 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python和ruby,我选谁?
2017/09/13 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
使用django自带的user做外键的方法
2020/11/30 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
优秀老师事迹材料
2014/02/05 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技