有 2 台服务器 A 和 B。我在服务器 B 中有我的 php 脚本。现在,客户端将一些数据发送到服务器 A,服务器 A 将其发送到服务器 B。
我想获取请求的 IP 地址(即服务器 A)。我怎样才能使用 php 来做到这一点?
如果我使用$_SERVER['REMOTE_ADDR']
,我会得到客户端的 IP 地址。如果我使用$_SERVER['SERVER_ADDR']
,我会得到空值。
$_SERVER['SERVER_NAME']
并且$_SERVER['HTTP_HOST']
应该返回服务器的 DNS 名称。如果您可以使用 DNS 而不是 IP,我认为您应该尝试使用这些变量之一。虽然,如前所述,如果没有$_SERVER['SERVER_ADDR']
填充,您可能有错误的配置。
提供有关服务器、IIS/Apache、操作系统、PHP 版本的信息,这可能更容易提供帮助。
此外,尝试$_SERVER['SERVER_ADDR']
在请求进入的服务器 A 上回显/记录,看看您是否从那里获得一个值,因为$_SERVER['SERVER_ADDR']
在服务器 B 上读取应该为您提供服务器 B 的 IP。如果您在服务器 A 上获得一个值,您可以保存/传递在代码中将值转发到服务器 B(无论您从服务器 A 到 B 的事务发生在哪里)。