2

echo $_SERVER['SERVER_ADDR']总是 yield 192.168.1.142,这是我的家庭网络中我的服务器的 IP 地址。我可以使用我的外部 IP 访问该网站,因为我已经在路由器上设置了端口转发,但$_SERVER['SERVER_ADDR']无论我尝试什么,都只会返回内部 IP。

我怎样才能$_SERVER['SERVER_ADDR']返回我的外部IP?

4

2 回答 2

0

您可以为此使用 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];
于 2013-04-26T05:58:20.237 回答
0

将第二个 IP 添加到您的服务器(ifconfig eth0:1 192.168.1.143)并在路由器的端口转发规则中使用它。这样,外部访问将通过该地址进入,您可以区分两者之间的区别。

于 2017-04-21T02:27:34.657 回答