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

发布时间:2020-12-19编辑:脚本学堂
本文介绍了php获取客户端Ip地址的几种方法,如何用php取得客户端的真实ip地址呢,有需要的朋友参考下。

例1,php获取客户端IP地址
 

复制代码 代码示例:
<?php 
$iipp=$_SERVER["REMOTE_ADDR"]; 
echo $iipp; 
?> 

例2,php获取客户端IP地址。 
 

复制代码 代码示例:
<?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; 
?> 

例3,php获取客户端IP地址。
 

复制代码 代码示例:
<?php  
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(); 
?> 

例4,php获取客户端IP地址。
 

复制代码 代码示例:
<?php  
//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 ; 
?> 

例5,php获取客户端IP地址。 
 

复制代码 代码示例:
<?php  
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; 
?> 

例6,php获取客户端IP地址。
 

复制代码 代码示例:
<?php 
function getIP() /*获取客户端IP*/ 

if (@$_SERVER["HTTP_X_FORWARDED_FOR"]) 
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
else if (@$_SERVER["HTTP_CLIENT_IP"]) 
$ip = $_SERVER["HTTP_CLIENT_IP"]; 
else if (@$_SERVER["REMOTE_ADDR"]) 
$ip = $_SERVER["REMOTE_ADDR"]; 
else if (@getenv("HTTP_X_FORWARDED_FOR")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
else if (@getenv("HTTP_CLIENT_IP")) 
$ip = getenv("HTTP_CLIENT_IP"); 
else if (@getenv("REMOTE_ADDR")) 
$ip = getenv("REMOTE_ADDR"); 
else 
$ip = "Unknown"; 
return $ip; 

 
echo getip(); 
?> 
 

1,来看看代码: 
 

复制代码 代码示例:
echo "(1)浏览当前页面的用户的 IP 地址为:"; 
echo $_SERVER['REMOTE_ADDR']; 
echo ""; 
echo "(2)浏览当前页面的用户的 IP 地址为:"; 
echo getenv('REMOTE_ADDR'); 
echo ""; 
echo "主机 www.baidu.com 的 IP 地址为:"; 
echo gethostbyname(www.baidu.com);  
 

2,它的输出结果为: 
(1)浏览当前页面的用户的 IP 地址为:127.0.0.1 
(2)浏览当前页面的用户的 IP 地址为:127.0.0.1 
主机 www.baidu.com 的 IP 地址为:61.135.169.105 
 
3,关于获取客户端的 IP 地址,有俩方法: 
第一个是使用: 
$_SERVER['REMOTE_ADDR'] 
它正在浏览当前页面用户的 IP 地址,这里的输出结果为 127.0.0.1,因为这是在本地测试,输出的是我本地的环路地址。 
 
第俩个是使用: 
getenv('REMOTE_ADDR') 
 
这里使用了函数 getenv : Gets the value of an environment variable(得到各种环境变量的值),返回值:Returns the value of the environment variable varname, or FALSE on an error(失败的话返回 FALSE). 
 
4,关于获取服务器端的 IP 地址: 
gethostbyname(www.baidu.com) 
这里使用了函数 gethostbyname : Get the IP address corresponding to a given Internet host name(通过给定的一个主机名字而得到它的 IP 地址),返回值:Returns the IP address of the Internet host specified by hostname or a string containing the unmodified hostname on failure(失败的话返回原样的输入字符主机名). 
 
5,注意这里的最后一句,也就是说,如果失败的话,它会将原样输出, 
例如:   
 

复制代码 代码示例:
echo "无效主机 iwilldown 的 IP 地址为:";   
echo gethostbyname("iwilldown");   

输出无效主机 iwilldown 的 IP 地址为:iwilldown
当然,这个可不是 IP 地址。