2011-02-01 64 views
3

如何從我的開發機器上運行的PHP腳本(不在某個服務器上)檢查我是否連接到互聯網?確定在PHP腳本,如果連接到互聯網?

我運行腳本使用wget下載一組文件(可能存在也可能不存在)。如果我在未連接的情況下嘗試下載wget,則wget繼續下一個,認爲該文件不存在,所以我需要在調用wget之前進行檢查。

+0

的[?如果連接到互聯網的PHP腳本確定]可能重複(http://stackoverflow.com/questions/4860365/determine -in-php-script-if-connected-to-internet) – 2011-02-01 08:50:58

+0

@Mark Ba​​ker - 呃哦!是的,那是我的 - 我第一次沒有獲得發佈成功,並在一段時間後再次嘗試......如果可以,請合併! – Steve 2011-02-01 09:49:40

回答

6

只是檢查是否google.com可達:

<?php 
if (!$sock = @fsockopen('www.google.com', 80, $num, $error, 5)) 
echo 'offline'; 
else 
echo 'OK'; 
?> 
1

快速檢查是爲某個域執行主機名查找。

<?php 
$ip = gethostbyname('www.google.com'); 
if($ip != 'www.google.com') { 
    //connected! 
} else { 
    //not connected 
} 
?> 
+0

即使到外部的連接失敗,本地網絡上的DNS服務器通常也會正常工作。由於DNS查詢響應被緩存,這可能會返回一個IP地址,用於離線狀態*小時*。 – Piskvor 2011-02-01 09:03:46