php获取客户端ip地址方法(本地ip地址与远程ip地址)

发布时间:2019-10-27编辑:脚本学堂
php如何获取客户端ip地址的几种方法,获取ip地址函数,包括php获取远程客户端的真实ip地址的方法,需要的朋友参考下。

方法一:
 

复制代码 代码示例:
//获取IP地址函数
function GetIP(){
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"]))
$ip = $_SERVER["REMOTE_ADDR"];
else
$ip = "Unknown";
return $ip;
}
echo GetIP(); //调用函数

方法二:
 

复制代码 代码示例:
//获取ip地址函数
function GetIp(){
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";  
}
return $ip;
}
echo GetIp();//调用函数

方法三:
 

复制代码 代码示例:
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;

方法四:
 

复制代码 代码示例:
//获取ip地址函数
function GetIp(){
$ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$ip = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
return $ip;
}
echo GetIp();//调用函数

方法五:
 

复制代码 代码示例:
//获取ip地址函数
function GetIp(){
$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 GetIp();//调用函数

方法六:
 

复制代码 代码示例:
//获取ip地址函数
function GetIp(){
if(getenv('HTTP_CLIENT_IP')){
$ip = getenv('HTTP_CLIENT_IP');
}elseif(getenv('HTTP_X_FORWARDED_FOR')){
$ip = getenv('HTTP_X_FORWARDED_FOR');
}elseif(getenv('REMOTE_ADDR')){
$ip = getenv('REMOTE_ADDR');
}else{
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
return $ip;
}
echo GetIp();//调用函数

php获取远程客户端的真实ip地址的方法

在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。
1、REMOTE_ADDR:浏览当前页面的用户计算机的ip地址
2、HTTP_X_FORWARDED_FOR: 浏览当前页面的用户计算机的网关
3、HTTP_CLIENT_IP:客户端的ip

在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。
要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。

并不是每个代理服务器都能用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。

注意:如果客户端没有通过代理服务器来访问,那么用$_SERVER["HTTP_X_FORWARDED_FOR"] 取到的值将是空的。