2013-02-19 79 views
1

我不能爲我的生活弄清楚我做錯了什麼。我正在使用$sock = fsockopen("irc.esper.net", 6667)嘗試連接到服務器。我也嘗試使用端口5555並使用服務器名稱aperture.esper.net。所有這些都會因超時或網絡不可達錯誤而失敗(檢查日誌)。整個代碼在這裏:我的PHP腳本無法連接到IRC服務器

<?php 

set_time_limit(0); 

$sock = fsockopen("irc.ipv6.esper.net", 6667); 

echo("Joined"); 

if (!$sock) { 
    exit(1); 
} 

fputs($sock, "USER kodas2_ :kodas2_"); 
fputs($sock, "NICK h1a2r\r\n"); 
fputs($sock, "JOIN #minecraft\r\n"); 

while (true) { 

} 
?> 

感謝您的任何答覆。

回答

3
$sock [email protected] fsockopen("irc.esper.net", 6667, $errno, $errstr, 30); 
if ($sock) { 
    printf("No error, go on."); 
} 

說:No error, go on.

$sock [email protected] fsockopen("irc.ipv6.esper.net", 6667, $errno, $errstr, 30); 
if (!$sock) { 
    printf("errno: %s, errstr: %s", $errno, $errstr); 
} 

說:errno: 0, errstr: php_network_getaddresses: getaddrinfo failed: No such host is known.

所以,先不管有效與否檢查您的主機。

+0

+1 **總是**使用內置的錯誤函數/全局變量/返回值。 – Xeoncross 2013-02-19 15:01:18

0

您需要設置防火牆以允許我期望的6667個端口。