3

这是使用带有 Curl 的 PHP(在托管服务器上)的问题。我正在尝试控制端口54512(例如)上的远程设备(LED 状态)。$url包括IP:port与短 CGI 命令连接的数字。

以下是代码片段;

$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 没有阻止任何端口号,我与托管公司核实过。他们认为我有一个编程错误,但在哪里?

谢谢!铝

4

2 回答 2

4

解决方法:

  1. 尝试$sensorIP = "http://77.134.85.187:54512";

  2. 确保出站端口 54512 已打开(请咨询您的托管服务提供商)

  3. curl_exec()函数之后,添加$output = curl_getinfo($ch);并打印并检查输出。你可以从中得到一些信息。

  4. 不要将端口号作为 url 的一部分。请改用以下内容:

    curl_setopt($ch, CURLOPT_PORT, '54512');

于 2013-01-04T13:13:14.217 回答
-1

我最近遇到了同样的问题。我几乎尝试了所有方法,但还没有运气 据我了解,curl 不适用于除 80 之外的其他端口。所以这里最好的解决方案是解决端口 80 上的 curl 问题,你不会像我一样遇到任何问题现在。希望这些信息对您有所帮助。

于 2017-11-02T08:49:00.677 回答