通过PHP获取访问者的IP地址

之前我已经谈到过使用PHP获取访问者的IP地址。使用$_SERVER [“ REMOTE_ADDR”]值的失败之处在于,如果访问者正在使用代理,则您将获得代理IP地址,而不是访问者真实IP地址。

此功能通过遍历$_SERVER数组中可能包含与IP地址有关的信息的任何变量来工作。如果它们都为空,则该函数最终查看$_SERVER [“ REMOTE_ADDR”]值,并将其作为默认值返回。

function getRealIpAddr(){
 if ( !empty($_SERVER['HTTP_CLIENT_IP']) ) {
  // 从互联网检查IP。
  $ip = $_SERVER['HTTP_CLIENT_IP'];
 } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
  // 检查IP是否从代理传递。
  $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
 } else {
  // 从远端地址获取IP地址。
  $ip = $_SERVER['REMOTE_ADDR'];
 }
 return $ip;
}

要运行此功能,只需调用它。

echo getRealIpAddr();