2012-05-25 42 views
0

這裏是我的代碼:的fsockopen在PHP不工作的服務器

$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服務器,我可以從服務器和本地連接。 可能是什麼問題?

+0

請將您的IP地址混淆或更改爲類似111.111.111.111的內容......這是SSH打開! – dAm2K

回答

1

謝謝,我找到了解決方案。目標主機已阻止我的服務器IP地址。

2

它不是由您的ISP啓用,或端口被阻止。我建議你聯繫servicedesk。

+0

忘了提。我有另一個sftp服務器,我可以從服務器和本地連接。 –

+1

你可以使用捲曲?如果它只包含你的內容?所以,你有3個服務器,2個功能,1個沒有? – Tschallacka

+0

無法更改連接到sftp服務器的代碼。它適用於其他服務器。 –

2

兩個選項,我能想到的:

目標服務器將只接受來自特定IP地址的連接,並且您的Web服務器不就行了。

Web服務器上的Open SSL版本不兼容,因此用於連接的密碼無法達成一致。或者它試圖回退到協議1,但目標服務器被配置爲只允許協議2(最新)。

因此,請檢查目標服務器上是否存在防火牆限制,並檢查openssl是否爲最新版本,並且密碼都在Web服務器上可用。