[PHP] pingを使ってサーバの応答を確認する




簡単に呼び出せるように関数化

ping試行回数、タイムアウト時間、ping送信するサーバの IP アドレスを渡すだけで応答時間を返す簡単な関数を作成。

// 関数
function serverping($count, $timeout, $server){

// 時間計測開始
$time = time();

// ping 試行回数 $count 回、タイムアウト $timeout 秒
$ping_command_str = printf(“ping -c %u -w %u %s”, $count, $timeout, $server);

// 経過時間計算
$sec = time() – $time;

// タイムアウトの時は -1、そうでないなら掛かった時間を返す
$sec= strstr(`$ping_command_str`, ‘100% packet loss’) ? -1:$sec;

return $sec;

}

// 使い方
$count = 5;
$tieout = 5;
$server = 127.0.0.1;
$sec = serverping($count, $timeout, $server);if ($sec === -1){
// タイムアウト時
echo ‘応答なし’;
}
else{
// 応答時
echo ‘試行回数:’.$count.’回 タイムアウト:’.$timeout.’秒 掛かった時間:’.$sec.’秒’;
}

1秒以下の精度の時間を取得したいのであれば、time() 関数を microtime() 関数に置き換える。




コメント

メールアドレスが公開されることはありません。