1

改ざんしているスクリプトで問題が発生しています。

ゲームサーバーのオンラインチェッカーを作成しようとしているので、サーバーがオンラインであるか、Webサイトからダウンしているかを示すことができます。これが私のコードです:

<?php
if (!$socket = @fsockopen(IP, Port, $errno, $errstr, 2))
{
  echo "<center><img style='float:left;' src='images/offline_icon.png'><font style='float:left;' size='5' color='red'><strong>Offline!</strong></font></center>";
}
else 
{
  echo "<center><img style='float:left;' src='images/online_icon.png'><font style='float:left;' size='5' color='green'><strong>Online!</strong></font></center>";
  fclose($socket);
}
?>

私の問題は、失敗することです。タイムアウトを30に設定すると、30秒待機してから、オフラインとしてマークして続行します。

ただし、ターミナルでIPをpingすると、問題なく動作します。

pingとポートについて検索したところ、問題があるようです。

ポートなしでIPに対して通常のpingを実行する方法はありますか?Linuxコマンドラインのように?

4

1 に答える 1

3

ICMPはポートを使用しません。

exec()サーバーへのpingに使用することをお勧めします。チェックアウト:PHPを使用してIPアドレスにpingを実行し、結果をエコーする

于 2013-03-05T19:23:27.697 に答える