使用PHP和Curl(在托管服务器上)这是一个问题。我正在尝试控制端口54512
上的远程设备(LED状态)(例如)。 $url
包括与短CGI命令连接的IP:port
数字。
以下是代码片段;
$sensorIP = "77.134.85.187:54512"; // IP:port format
$url = $sensorIP . "/setParam.cgi?DOStatus_02=0" ; // set E2210 LED off
echo $url; //
$result = accessURL ($url); // set LED state on E2210 remote unit
此代码超时。当我在网页浏览器中使用$ url作为地址时,它可以正常工作。因此不阻止接收端口54512。当我使用IP:80
来形成$url
时,它工作正常(接收端口设置为80)。我尝试使用CURLOPT_PORT
选项,PHP脚本仍然超时。
发送服务器传出HTTP不阻止任何端口号,我检查了我的托管公司。他们认为我有编程错误,但在哪里?
谢谢! Al
答案 0 :(得分:4)
解决方法:
尝试$sensorIP = "http://77.134.85.187:54512";
确保出站端口54512已打开(请与您的托管服务提供商联系)
在curl_exec()
功能之后,添加$output = curl_getinfo($ch);
并打印并检查输出。你可以从中得到一些信息。
不要将端口号作为url的一部分。请改用以下内容:
curl_setopt($ch, CURLOPT_PORT, '54512');
答案 1 :(得分:-1)
我最近遇到了同样的问题。 我几乎尝试了一切,但还没有运气 据我所知,除了80之外,curl不适用于其他端口。 所以这里最好的解决方案是解决80端口的卷曲问题,你现在就不会遇到任何问题。 希望这些信息对您有所帮助。