如何從我的開發機器上運行的PHP腳本(不在某個服務器上)檢查我是否連接到互聯網?確定在PHP腳本,如果連接到互聯網?
我運行腳本使用wget下載一組文件(可能存在也可能不存在)。如果我在未連接的情況下嘗試下載wget,則wget繼續下一個,認爲該文件不存在,所以我需要在調用wget之前進行檢查。
如何從我的開發機器上運行的PHP腳本(不在某個服務器上)檢查我是否連接到互聯網?確定在PHP腳本,如果連接到互聯網?
我運行腳本使用wget下載一組文件(可能存在也可能不存在)。如果我在未連接的情況下嘗試下載wget,則wget繼續下一個,認爲該文件不存在,所以我需要在調用wget之前進行檢查。
只是檢查是否google.com可達:
<?php
if (!$sock = @fsockopen('www.google.com', 80, $num, $error, 5))
echo 'offline';
else
echo 'OK';
?>
快速檢查是爲某個域執行主機名查找。
<?php
$ip = gethostbyname('www.google.com');
if($ip != 'www.google.com') {
//connected!
} else {
//not connected
}
?>
即使到外部的連接失敗,本地網絡上的DNS服務器通常也會正常工作。由於DNS查詢響應被緩存,這可能會返回一個IP地址,用於離線狀態*小時*。 – Piskvor 2011-02-01 09:03:46
的[?如果連接到互聯網的PHP腳本確定]可能重複(http://stackoverflow.com/questions/4860365/determine -in-php-script-if-connected-to-internet) – 2011-02-01 08:50:58
@Mark Baker - 呃哦!是的,那是我的 - 我第一次沒有獲得發佈成功,並在一段時間後再次嘗試......如果可以,請合併! – Steve 2011-02-01 09:49:40