`
onedada
  • 浏览: 100796 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

php获取客户端IP地址的几种方法

    博客分类:
  • php
阅读更多

本文转载自:   http://publish.it168.com/2006/0310/20060310036801.shtml

 

 

【IT168 服务器学院PHP Code one:
<?
$iipp
=$_SERVER["REMOTE_ADDR"];
echo 
$iipp;
?>
 
PHP Code two:
<?php
$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;
?>

///////////////////////////////////////////////

<?
function get_real_ip(){
 
$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 
get_real_ip();
?>
 
PHP Code three:
<? 
//php获取ip的算法
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:".$ip 
?>
 
PHP Code four:
<?
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获取客户端真实IP地址的5种情况分析和实现代码

    主要介绍了PHP获取客户端真实IP地址的几种情况分析和实现代码,重点在几种干扰获得真实IP的几种情况介绍,需要的朋友可以参考下

    php获取访问者IP地址汇总

    在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER['REMOTE_ADDR']就可以了...下面我们就来给大家汇总一下常用的几种获取IP地址的方法。

    PHP基础教程 是一个比较有价值的PHP新手教程!

    以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: &lt;?php . . . ?&gt; &lt;script language="php"&gt; . . . &lt;/script&gt; 语句 与Perl和C一样,...

    web路径探测工具 7kbscan-WebPathBrute 1.5.8 (集成三字典)

    2、X-Real-IP,一般只记录真实发出请求的客户端IP,上面的例子,如果配置了X-Read-IP,将会是X-Real-IP: 1.1.1.1 四、自定义User Agent头这个不必解释了吧。 五、自定义错误页面关键字这个针对修改了错误页面的...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    基于J2EE框架的个人博客系统项目毕业设计论...

    而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。...

    java开源包1

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包11

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包2

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包3

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包6

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包5

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包10

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包4

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包8

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包7

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

Global site tag (gtag.js) - Google Analytics