服务端和客户端IP地址

getenv — 获取一个环境变量的值

服务器IP地址:当前运行脚本所在的服务器的 IP 地址。

  1. gethostbyname()函数说明——用域名或主机名获取IP地址;
  2. $_SERVER['SERVER_ADDR'];
  3. getenv('SERVER_ADDR');

(客户端)浏览器IP地址:正在浏览当前页面用户的 IP 地址。

  1. gethostbyname()函数说明——用域名或主机名获取IP地址;
  2. getenv("REMOTE_ADDR");浏览当前页面的用户计算机的ip地址;
  3. $_SERVER['REMOTE_ADDR'];
  4. getenv("HTTP_X_FORWARDED_FOR"): 浏览当前页面的用户计算机的网关;
  5. getenv("HTTP_CLIENT_IP"):客户端的ip;

客户端是使用代理服务器的

在PHP 中使用 $_SERVER["REMOTE_ADDR"] 来取得客户端的 IP 地址,

那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。

要想透过代理服务器取得客户端的真实 IP 地址,就要使用 $_SERVER["HTTP_X_FORWARDED_FOR"] 来读取。

 例如:

//显示客户端I

function get_client_ip() {#

if(getenv('HTTP_CLIENT_IP')) {

$client_ip = getenv('HTTP_CLIENT_IP');

} elseif(getenv('HTTP_X_FORWARDED_FOR')) {

$client_ip = getenv('HTTP_X_FORWARDED_FOR');

} elseif(getenv('REMOTE_ADDR')) {

$client_ip = getenv('REMOTE_ADDR');

} else {

$client_ip = $HTTP_SERVER_VAR['REMOTE_ADDR'];

}

return $client_ip;

}

//服务器IP

function get_server_ip(){

if (isset($_SERVER))

{

if($_SERVER['SERVER_ADDR']) $huoqu_ip=$_SERVER['SERVER_ADDR'];

else $huoqu_ip=$_SERVER['LOCAL_ADDR'];

}

else

{

$huoqu_ip=getenv('SERVER_ADDR');

}

return $huoqu_ip;

}

posted on 2019-03-29 21:11  乘风破浪,逍遥人生  阅读(1327)  评论(0编辑  收藏  举报