dongyuan9109
2012-05-25 23:50
浏览 293
已采纳

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

Here is my code:

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

if (!$fp) {

    echo "not connected";

} else {

    $out = "GET / HTTP/1.1
";
    $out .= "Host: 74.63.172.37
";
    $out .= "Connection: Close

";
    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();
}

On local server it gives me an output:

trying to connect
SSH-2.0-1.82_sshlib GlobalSCAPE
Connected

Whereas on server it gives me an output:

trying to connect
Not connected

I have another sftp server, where I could connect from both server and locally. What could be the issue?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • duangenshi9836 2012-06-01 06:50
    已采纳

    Thanks ,, I found the solution. Destination Host has blocked my Server IP address.

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • donglei1973 2012-05-25 23:52

    It is either not enabled by your ISP, or the ports are being blocked. I would suggest you contact the servicedesk.

    评论
    解决 无用
    打赏 举报
  • doujiu4643 2012-05-26 00:28

    Two options I can think of:

    the destination server will only accept connections from a particular IP address, and your Web server isn't on it.

    The version of Open SSL on your web server is not compatible, so the cypher used for connectivity can't be agreed. Or it's trying to fall back to protocol 1, but the destination sever is configured to only allow protocol 2 (the latest).

    So - check if there is a firewall restriction on destination server, and check openssl is up to date and cyphers are all available on your web server.

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题