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 远程关机操作的代码
Dec 05 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
Jun 11 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
php查询whois信息的方法
Jun 08 PHP
详解PHP+AJAX无刷新分页实现方法
Nov 03 PHP
PHP+redis实现添加处理投票的方法
Nov 14 PHP
万能的php分页类
Jul 06 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
如何在centos8自定义目录安装php7.3
Nov 28 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中一个完整表单处理实现代码
2011/11/10 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
详解JavaScript中的表单验证
2015/06/16 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Apache如何部署django项目
2017/05/21 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
python实现弹跳小球
2019/05/13 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
pytorch forward两个参数实例
2020/01/17 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
个人自我评价和职业目标
2014/01/24 职场文书
创业融资计划书
2014/04/25 职场文书
公司节能减排倡议书
2014/05/14 职场文书
个人年终总结结尾
2015/03/06 职场文书
小学运动会加油词
2015/07/18 职场文书
《正比例》教学反思
2016/02/23 职场文书