PHP Curl 存在端口号问题

问题描述 投票:0回答:2

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

php curl port
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');


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.