2012-10-12 238 views
0

有2个服务器A和B.我在服务器B. 现在我的PHP脚本,客户端的一些数据发送到服务器A和服务器A发送给服务器B.如何获取使用php请求的服务器地址的IP地址?

我想要得到的IP地址请求来了(即服务器A)。我怎样才能使用PHP?

如果我使用$_SERVER['REMOTE_ADDR'],我得到客户端的IP地址。 如果我使用$_SERVER['SERVER_ADDR'],我会得到空值。

+0

这是一个与你的网络服务器配置或行为问题,如果它不填充'SERVER_ADDR'。 – mario

+0

您是否将客户端浏览器重定向到服务器B? –

+0

可能重复: 去下面的问题, http://stackoverflow.com/questions/3003145/how-to-get-client-ip-address – Sujeet

回答

0

$_SERVER['SERVER_NAME'] and $_SERVER['HTTP_HOST']应该返回服务器的DNS名称。如果你可以使用DNS而不是IP,我想也许你应该尝试使用这些变量之一。尽管如前所述,如果没有填充$_SERVER['SERVER_ADDR'],则可能是配置错误。

提供有关服务器,IIS/Apache,操作系统,PHP版本的信息,它可能更容易帮助。

另外,尝试呼应/服务器上的日志记录$_SERVER['SERVER_ADDR']在请求到达,看看你从那里得到的值,因为服务器B阅读$_SERVER['SERVER_ADDR']应该给你的IP服务器B.。如果你在服务器A上的值您可以在代码中将值保存/传递给服务器B(无论您的服务器A到B的事务发生在哪里)。

"The IP address of the server under which the current script is executing."

+0

REMOTE_ADDR会给我(服务器B)服务器A或客户端的IP地址。服务器B的Coz,服务器A是客户端。我觉得如果我的服务器配置设置正确,理论上REMOTE_ADDR应该给服务器A的IP – Sangam254

+0

这一切都取决于你如何传递值。如果您通过HTTP请求将值从服务器A传递给B,则服务器B上的$ _SERVER ['REMOTE_ADDR']应为您提供服务器A的地址。 – Marcus

+0

它将成为服务器B的HTTP POST表单服务器A。我使用REMOTE_ADDRESS获取服务器A的IP? – Sangam254