【问题标题】:$_SERVER['SERVER_ADDR'] always gives primary IP of server not actual running server IP in php$_SERVER['SERVER_ADDR'] 总是给出服务器的主 IP,而不是 php 中实际运行的服务器 IP
【发布时间】:2021-06-04 22:10:30
【问题描述】:

在我的服务器上,有 10 个 IP 可用。每次运行都会自动改变这十个IP中的运行IP。下面的代码总是返回我服务器的主 IP,而不是服务器的实际运行 IP。

<?PHP
echo $_SERVER['SERVER_ADDR'];
?>

如何获取我的服务器的实际运行IP?

【问题讨论】:

  • 'SERVER_ADDR' 执行当前脚本的服务器的 IP 地址。 docs。可能你应该看看你的网络服务器虚拟主机配置。为什么 IP 在单台机器上轮换?没有负载均衡器和多个主机是否有意义?
  • 不,我的脚本在辅助 IP 中运行,但 SERVER_ADDR 返回我服务器的主 IP。

标签: php server ip


【解决方案1】:

试试这个,

function getIPAddress() {  
 
 if(!empty($_SERVER['HTTP_CLIENT_IP'])) {  
            $ip = $_SERVER['HTTP_CLIENT_IP'];  
    }  
 
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {  
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];  
 }  
else{  
         $ip = $_SERVER['REMOTE_ADDR'];  
 }  
 return $ip;  

}

【讨论】:

    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2013-06-19
    相关资源
    最近更新 更多