php中的fsockopen无法在服务器上运行

时间:2012-05-25 23:50:10

标签: php fsockopen

这是我的代码:

$fp = fsockopen("74.63.172.37", 22, $errno, $errstr, 50);

if (!$fp) {

    echo "not connected";

} else {

    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: 74.63.172.37\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $val = "";
    if (!feof($fp)) {
        echo "<br/>".fgets($fp, 128);
    }

    if (feof($fp)) {
        echo "<br/>Not connected";
    } else {
      echo "<br/>Connected";
    }

    fclose($fp);

    die();
}

在本地服务器上,它为我提供了一个输出:

trying to connect
SSH-2.0-1.82_sshlib GlobalSCAPE
Connected

然而在服务器上它给了我一个输出:

trying to connect
Not connected

我有另一个sftp服务器,我可以从服务器和本地连接。 可能是什么问题?

3 个答案:

答案 0 :(得分:2)

您的ISP未启用它,或者端口被阻止。我建议你联系服务台。

答案 1 :(得分:2)

我能想到的两个选择:

目标服务器只接受来自特定IP地址的连接,并且您的Web服务器不在其上。

Web服务器上的Open SSL版本不兼容,因此无法同意用于连接的密码。或者它试图回退到协议1,但目标服务器配置为仅允许协议2(最新的)。

所以 - 检查目标服务器上是否存在防火墙限制,并检查openssl是否是最新的,并且您的Web服务器上的所有密码都可用。

答案 2 :(得分:1)

谢谢,我找到了解决方案。目标主机已阻止我的服务器IP地址。