【问题标题】:Using code to detect IP address and change code depending on the IP Address使用代码检测 IP 地址并根据 IP 地址更改代码
【发布时间】:2013-03-16 05:42:52
【问题描述】:

我有一个小问题。我正在使用 PHP 中的网站在 Host Gator 上调用我的主机站点上的网页。问题是 URL 指向我自己的 IP 地址,并且端口转发到我 LAN 上的特定 PC。除非是我尝试访问该网页,否则它可以完美运行。我必须使用本地 IP 地址来访问其他人可以看到的相同结果。在我的网络中我无能为力,我正在使用带有静态 IP 的 Comcast Business,当使用我的 WAN IP 地址时,它根本不会离开 LAN 并反射回 WAN IP。 所以我想了几个解决方案:

一种是使用javascript或其他东西来检测请求的IP地址,如果地址是我的,它会将URL更改为我的本地IP。那我不知道该怎么办。 第二种选择是在托管网站上使用 PHP 来收集结果:

$homepage = file_get_contents('http://MYWANURL);
echo $homepage;

MYWANURL 可以从 Internet 访问的我的 URL。问题是此代码返回为空。我从来没有遇到过使用 file_get_contents 从我的托管公司获取其他网站的问题。 如果我在局域网中使用相同的代码,在本地 php 服务器上使用我的局域网地址,我正在寻找的输出完美。

所以我的问题是,有没有一种方法可以在我的托管公司上通过 javascript 或 PHP 使用,以便我可以看到与局域网外的人相同的结果?

【问题讨论】:

  • $_SERVER['SERVER_ADDR'];这给出了基于你可以重定向的请求 IP 地址
  • 既然是网络问题,我宁愿修网络也不要修代码
  • 您可以编辑您的主机文件以进行此更改吗?
  • 您是仅在一台特定机器上遇到此问题,还是您局域网中的所有主机也遇到此问题?
  • 这是一个无法修复的局域网问题,无需对硬件进行重大更改。我使用的 Comcast Business 路由器在引用公共 WAN 地址时缺少离开 LAN 的设置。因此,基本上当我查询自己的 WAN(公共地址)时,它永远不会离开 LAN,因为它将我的 LAN 与 WAN 地址联系在一起。它跳过 IP 转发。

标签: php javascript networking routing connection


【解决方案1】:

不确定我是否正确理解了您的问题,但我有以下设置(Ubuntu,/etc/hosts

127.0.0.1      yourhost.com

这样,数据包将永远不会离开您的计算机,并且会立即重定向到指定的接口。但是,如果您的路由器有问题,您必须将相同的更改移植到 LAN 中的所有主机(或者如果您使用的是更新本地 DNS 服务器)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多