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 文件上传模型,支持多文件上传
Aug 13 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
smarty中js的调用方法示例
Oct 27 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 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设计模式小结
2013/02/15 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
php ZipArchive实现多文件打包下载实例
2019/10/31 PHP
Javascript的闭包
2009/12/31 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python单元测试unittest实例详解
2015/05/11 Python
Python解析树及树的遍历
2016/02/03 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
商场圣诞节活动总结
2015/05/06 职场文书
起诉书格式范文
2015/05/20 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书