Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用代码检测IP地址并根据IP地址更改代码_Php_Javascript_Networking_Routing_Connection - Fatal编程技术网

Php 使用代码检测IP地址并根据IP地址更改代码

Php 使用代码检测IP地址并根据IP地址更改代码,php,javascript,networking,routing,connection,Php,Javascript,Networking,Routing,Connection,我有个小问题。我正在使用PHP中的一个网站在主机Gator上调用我的主机站点上的一个网页。问题是,URL指向我自己的IP地址,并将端口转发到我局域网上的特定PC。除非是我尝试访问该网页,否则它工作得很好。我必须使用本地IP地址访问其他人可以看到的相同结果。在我的网络中我无能为力,我使用康卡斯特公司的静态IP,当使用我的广域网IP地址时,它不会离开局域网并反射回广域网IP。 所以我想到了几个解决方案: 一种是使用javascript或其他方法来检测请求的IP地址,如果该地址是我的,它会将URL改为

我有个小问题。我正在使用PHP中的一个网站在主机Gator上调用我的主机站点上的一个网页。问题是,URL指向我自己的IP地址,并将端口转发到我局域网上的特定PC。除非是我尝试访问该网页,否则它工作得很好。我必须使用本地IP地址访问其他人可以看到的相同结果。在我的网络中我无能为力,我使用康卡斯特公司的静态IP,当使用我的广域网IP地址时,它不会离开局域网并反射回广域网IP。 所以我想到了几个解决方案:

一种是使用javascript或其他方法来检测请求的IP地址,如果该地址是我的,它会将URL改为我的本地IP。我不知道该怎么做。 第二种选择是在托管网站上使用PHP,通过以下方式收集结果:

$homepage = file_get_contents('http://MYWANURL);
echo $homepage;
其中MYWANURL是可以从internet访问的我的URL。问题是这段代码返回时是空的。我从未遇到过使用文件获取内容从我的托管公司获取其他网站的问题。 如果我在局域网中使用相同的代码,在本地php服务器上使用局域网地址,那么我正在寻找的输出效果会非常好


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

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


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

$\u server['server\u ADDR';这会根据您可以重定向的ip地址给出请求ip地址。由于这是一个网络问题,我宁愿修复网络而不是编解码器。您是否编辑主机文件以进行此更改?您是否仅在一台特定计算机上遇到此问题,或者局域网中的所有主机都会遇到此问题,也是吗?这是一个lan问题,如果不在硬件内进行剧烈的更改,它是不可修复的。我使用的Comcast Business router在引用公共WAN地址时缺少离开LAN的设置。因此,基本上,当我查询自己的WAN(公共地址)时,它从不离开LAN,因为它将我的LAN与WAN地址联系起来。它跳过IP转发。
127.0.0.1      yourhost.com