我创建了一个 fsockopen() 来向我的家庭 WLAN 中的智能插件发出 HTTP 请求。在我的本地服务器(也连接到我的家庭 WLAN)上,它工作正常。但是,如果 (php) 脚本在外部主机上运行,则 fsockopen 将不再工作。我猜 $host 是不同的。我如何从“外部”向 WLAN 中的设备发出 HTTP 请求?
这是 PHP 脚本在本地的工作原理:
$host= '192.168.1.33'; / the adress in my local WLAN
$port= 80;
@$fp= fsockopen($host,$port,$errno,$errstr,6); // open connection
// if not local, $fp always is FALSE,
感谢您的思考!
我试图找到正确的 URL,但我对网络连接、IP 地址和网络等了解不够。 (ChatGPT 也没有;-)
您需要做一些事情:
与您的 ISP 联系,确保他们不会阻止与您的 WAN 的传入连接。他们可能会向您收取该功能的额外费用。
将 HTTP 请求发送到 WAN 的公共 IP/端口。如果您不知道当前的 WAN IP 是什么(或者它会定期更改),那么您应该订阅 DynDNS 服务,该服务创建一个您可以向其发送请求的静态主机名,然后您可以使用 DynDNS 客户端(您的路由器甚至可能内置一个)来使用您当前的 WAN IP 更新主机名。
在 WAN 上设置端口转发,以便传入连接路由到 LAN 上的 HTTP 服务器。