顧客の 1 人は、fsockopen() を使用してサーバーがオンラインかどうかを判断する非常に単純なスクリプトを持っていると言いました。彼らは最近まで私たちを通して彼らのウェブサイトでうまくいったと言っていましたが、最近は動かなくなったので、それは設定だと思います.
私が最初に考えたのは、彼はそれを TCP として使用し、IP/ポートをゲーム サーバーに使用していたということでしたが、彼と私はスクリプトが他のさまざまな Web ホストから正常に動作することを確認しました。
特に私たちの問題は何ですか?
動作: http://crazygfl.xfactorservers.com/query.php?ip=www.xfactorservers.com&port=80
作品: http://crazygfl-stats.com/query.php?ip=109.73.163.231&port=27015
動作しません: http://crazygfl.xfactorservers.com/query.php?ip=109.73.163.231&port=27015
これがコードです...
<?php
$timeout = (isset($_GET['timeout']) ? ($_GET['timeout'] <= 0 ? 30 : ((int)$_GET['timeout'])) : 30);
if(empty($_GET['ip'])&&empty($_GET['port'])){
echo 'No IP/Port specified.';
}else{
if(fsockopen($_GET['ip'], $_GET['port'], $errno, $errstr, $timeout) === false){
echo 'offline';
}else{
echo 'online';
}
}