2011-09-12 51 views
0

請原諒我可怕的雙關語。fsockopen,不能進去!連接超時

基本上,交易是,主機是一個婊子。一個簡單的fsockopen腳本,無論端口,服務器或任何東西,將連接。試圖從虛擬主機獲得服務器幫助(由於不幸的情況下,我沒有辦法改變主機)證明是無效的......一羣白癡。然而,一個簡單的phpinfo()顯示,allow_url_fopenRegistered Stream Socket Transports允許我tcp, udp, unix, udg, ssl, sslv3, sslv2, tls

那麼,我錯過了什麼?它聽起來像主機謹慎地阻止套接字連接?我的意思是,即使是80端口不工作:

Warning: fsockopen() [function.fsockopen]: unable to connect to www.google.com:80 (Connection timed out)

+1

您能通過IP地址連接?可能是DNS問題... – DaveRandom

+0

@DaveRandom - DNS問題不會返回「連接超時」錯誤;你會得到「'php_network_getaddresses:getaddrinfo失敗:名稱或服務未知......」 –

回答

5

只要你正確地調用fsockopen(你不顯示代碼),該錯誤是暗示,是的,他們正在作出的出站連接限制你。

$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); 
if (!$fp) { 
    echo "$errstr ($errno)<br />\n"; 
} 

如果你有shell訪問,嘗試使用telnet,你會看到同樣的結果:

telnet www.google.com 80 
+0

正是我的想法,但我需要確認它是這種情況。這實際上是我使用的代碼(從PHP文檔複製)。他們提供外殼訪問......或至少嘗試;它並不實際工作。啊虛擬主機的奇妙世界... –

+0

聽起來像你需要一個新的網絡主機:) –