-2

嗯, $_SERVER['REMOTE_ADDR']WhatIsMyIP显示了两个不同的 IP 地址。我想捕获 IP 地址,就像它在“whatismyip”上的显示方式一样。

4

3 回答 3

3

一些网络101:

    +--+
    |  |
    +--+
whatismyip.com                 +--+
108.162.207.135         +----- |  |
                        |      +--+
     |       +--+       |  your computer
     +------ |  | ------+  10.127.254.21
             +--+       |
          NAT router    |      +--+
          85.89.XX.XX   +----- |  |
                               +--+
                          your web server
                           10.127.254.22

如果这是您的网络设置,your web server将看到两者通信时10.127.254.21的 IP 。your computer这是因为要将数据从 路由your computeryour web server,数据包只需要直接在两者之间的线路上传输。如果两者是同一台机器,它甚至不需要这样做。

whatismyip.com85.89.XX.XX如果您尝试从 访问它,它将被视为原始 IP 地址,因为数据会在从到的途中your computer遍历您。NAT 路由器使用 NAT 技术代理请求,在此过程中隐藏您的实际IP 地址。看起来请求来自路由器,而不是您的.NAT routeryour computerwhatismyip.comwhatismyip.comyour computer

想要从头开始得到85.89.XX.XX答案是相当随意的。这不是“你的真实IP”,它是路由器的IP,与和之间的通信没有任何关系。$_SERVER['REMOTE_ADDR']your web serveryour computeryour web server

于 2013-02-07T16:09:28.903 回答
1

该站点显示您的全球 IP 地址(您用来连接到互联网的地址)。REMOTE_ADDR显示客户端地址,我猜是你自己的机器,根本不通过互联网。这就是为什么它向您显示本地 IP 地址,而不是全局 IP 地址。

底线:您使用您的全局地址请求远程服务器 (whatismyip.com),但使用您的本地地址请求您的本地服务器(如果它在同一台机器上,则为 127.0.0.1)。

于 2013-02-07T13:37:23.397 回答
0

当您运行本地 Web 服务器并使用$_SERVER['REMOTE_ADDR']它时,它将返回您在本地网络上的地址(如果在另一台计算机上)或 127.0.0.1(又名 localhost)如果在您自己的计算机上。而“我的 IP 是什么”将查看您的网络到 Internet 的 IP 地址。我希望这有助于澄清正在发生的事情。

无论如何,$_SERVER['REMOTE_ADDR']在适当的 Web 服务器上“实时”运行时应该可以正常工作,所以如果这是您计划做的,您不必担心。

于 2013-02-07T13:56:45.657 回答