导读:
function get_client_ip()
{
if (isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']))
{
return $_SERVER['HTTP_CLIENT_IP'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
return strtok($_SERVER['HTTP_X_FORWARDED_FOR'], ',');
}
if (isset($_SERVER['HTTP_PROXY_USER']) && !empty($_SERVER['HTTP_PROXY_USER']))
{
return $_SERVER['HTTP_PROXY_USER'];
}
if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']))
{
return $_SERVER['REMOTE_ADDR'];
}
else
{
return "0.0.0.0";
}
}
各预定义变量解释如下:
$_SERVER['REMOTE_ADDR'] 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
$_SERVER['HTTP_CLIENT_IP'] 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER['HTTP_X_FORWARDED_FOR'] 可以知道代理服务器的服务器名以及端口
$_SERVER['HTTP_PROXY_USER'] 登陆代理服务器 的用户名.
*/
本文转自
http://www.phpchina.com/html/07/t-70107.html
function get_client_ip()
{
if (isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']))
{
return $_SERVER['HTTP_CLIENT_IP'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
return strtok($_SERVER['HTTP_X_FORWARDED_FOR'], ',');
}
if (isset($_SERVER['HTTP_PROXY_USER']) && !empty($_SERVER['HTTP_PROXY_USER']))
{
return $_SERVER['HTTP_PROXY_USER'];
}
if (isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']))
{
return $_SERVER['REMOTE_ADDR'];
}
else
{
return "0.0.0.0";
}
}
各预定义变量解释如下:
$_SERVER['REMOTE_ADDR'] 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
$_SERVER['HTTP_CLIENT_IP'] 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER['HTTP_X_FORWARDED_FOR'] 可以知道代理服务器的服务器名以及端口
$_SERVER['HTTP_PROXY_USER'] 登陆代理服务器 的用户名.
*/
本文转自
http://www.phpchina.com/html/07/t-70107.html
本文介绍了一种PHP脚本中获取客户端真实IP地址的方法。通过检查预定义的服务器变量如REMOTE_ADDR, HTTP_CLIENT_IP等来确定客户端的真实IP,这对于识别用户地理位置或限制特定IP访问非常有用。
7243

被折叠的 条评论
为什么被折叠?



