狐の避暑地

PHPやJavaでプログラミングをしてます。狐が好きです。備忘録やゲームについて置いてあります。

指定ドメインでTeamSpeakのServerが存在するかのチェック

使う目的

TeamSpeakのサーバを運用していて、サーバがアクティブかどうかWeb上でわかるようにしたい

環境

php5 + apache2

方針

  1. 指定したドメインに向けてPingを飛ばしてみる
  2. DomainSocketが開くか否かで判定
指定したドメインに向けてPingを飛ばす
<?php
// ping(ホスト名, ポート番号, タイムアウト)
function ping($host,$port=80,$timeout=6){
    $fsock = @fsockopen($host, $port, $errno, $errstr, $timeout);
    if ( ! $fsock ) {
        $stat = FALSE;
    }else{
        $stat = TRUE;
    }
    fclose($fsock);
    return $stat;
}
?>
DomainSocketを開いてみる
<?php
if(ping("udp://example.jp", 9987)){
    print("Alive");
}else{
    print("Dead");
}
?>

メモ

  • TS3のポートのデフォルト値は9987
  • ドメインは自分のネットワーク内にある場合localhostにする必要があるかもしれない
    • もしくは192.168.などのローカルネットワークアドレス
  • というかlocalhostの場合はプロセスが上がってるかどうか見ても良いかもしれない