echo $_SERVER['SERVER_ADDR']
总是 yield 192.168.1.142
,这是我的家庭网络中我的服务器的 IP 地址。我可以使用我的外部 IP 访问该网站,因为我已经在路由器上设置了端口转发,但$_SERVER['SERVER_ADDR']
无论我尝试什么,都只会返回内部 IP。
我怎样才能$_SERVER['SERVER_ADDR']
返回我的外部IP?
您可以为此使用 file_get_contents 函数。您只需要找到一个可以返回您的IP地址的主机
$externalContent = file_get_contents('http://checkip.dyndns.com/');
preg_match('/Current IP Address: ([\[\]:.[0-9a-fA-F]+)</', $externalContent, $myIp);
echo $myexternalIp = $myIp[1];
将第二个 IP 添加到您的服务器(ifconfig eth0:1 192.168.1.143)并在路由器的端口转发规则中使用它。这样,外部访问将通过该地址进入,您可以区分两者之间的区别。