###前提・実現したいこと
PHPにてクライアントPCなどへのPing送信による死活監視。
###該当のソースコード
php
1function ping($host) 2{ 3 $r = exec(sprintf('ping -c 1 -W 5 %s', escapeshellarg($host)), $res, $rval); 4 return $rval === 0; 5}
このコードを実行したところ、Shellからは問題なく、1か0の死活監視が出来ます。
ですが、Apache上で動かし、クライアントのブラウザから実行すると、execを使っているので、
動きません。
また、似たような情報として、
php
1function ping($host,$port=80,$timeout=6) 2{ 3 $fsock = fsockopen($host, $port, $errno, $errstr, $timeout); 4 if ( ! $fsock ) { 5 return False; 6 } else{ 7 return True; 8 } 9}
このように、
PHP
1fsockopen($host, $port, $errno, $errstr, $timeout)
を使う方法があるようですが、port番号を指定しているため、ポートを空けたサーバーなどしか
監視できないようです。
portを開放していないクライアントPCの場合は使えません。
この場合は、ブラウザからexecを実行させる許可等が出来るのか、
それとも他に何か方法があるのか、教えてください。
出来ない場合はJavaScriptなどの別言語で対応しようかと思っています。
ご教授宜しくお願い致します。
###補足情報(言語/FW/ツール等のバージョンなど)
言語・バージョン:PHP / 5.4.16
サーバー:CentOS
WEB:Apache
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/16 07:59