私たちの顧客の一人は、fsockopen()を使ってサーバがオンラインであるかどうかを判断する非常に単純なスクリプトを持っていると言いました。彼らは最近まで私たちを通してウェブサイト上で正常に機能していたと言いましたが、最近は機能しなくなったので、それが設定だと仮定しています。特定のWebホストで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';
}
}
fsockopen機能が無効になっていないことを確認してください。 –
はスマートであり、精通した人物がホストからの要求をブロックしている(他のIP上であると仮定して)他のホストとは要求をブロックしている可能性があります。それは矛盾した行動を説明するでしょう – sdolgy
"作品"/"動作しません"とは何を意味するのですか?出力はありませんか?それはタイムアウトですか? – symcbean