Système de ping de serveur en PHP
Posté : 02 sept. 2016, 11:47
Bien le bonjour a tous !
Voilà, je m'explique, je suis en train de créer le portail de ma communauté multigaming, seulement, voilà, sur l'accueil je souhaite afficher le status des serveurs.
Cela marche très bien pour Minecraft car j'utilise un script différent des deux autres, mais pour le serveur Garry's Mod et World Of Warcraft, cela ne fonctionne pas correctement, car en effet, il affiche bien le status des serveurs, mais si le serveur Garry's Mod est éteins et que le serveur World Of Warcraft est allumé, le serveur Garry's Mod affichera En Ligne...
Et même chose pour l'inverse.
Je ne sait vraiment pas comment résoudre ce problème, voici mes codes :
Page func.php :
Et la page index.php (qui affiche le résultat donc) :
Voilà, je vous remercie de jeter un œil a mon code 
Edit : A noter que les IP des serveurs sont les mêmes, mais pas le port.
Voici :
Voilà, je m'explique, je suis en train de créer le portail de ma communauté multigaming, seulement, voilà, sur l'accueil je souhaite afficher le status des serveurs.
Cela marche très bien pour Minecraft car j'utilise un script différent des deux autres, mais pour le serveur Garry's Mod et World Of Warcraft, cela ne fonctionne pas correctement, car en effet, il affiche bien le status des serveurs, mais si le serveur Garry's Mod est éteins et que le serveur World Of Warcraft est allumé, le serveur Garry's Mod affichera En Ligne...
Et même chose pour l'inverse.
Je ne sait vraiment pas comment résoudre ce problème, voici mes codes :
Page func.php :
Code : Tout sélectionner
function wowstatus($ip, $port) {
error_reporting(0);
$test = fsockopen($host,$port,$errno,$errstr,3);
if(!$test)
{ echo "<b style=\"color:red\">Hors Ligne</b>"; }
else { echo "<b style=\"color:green\">En Ligne</b>"; }
}
function gmodstatus($ipgmod, $portgmod) {
error_reporting(0);
$sock = fsockopen("udp://".$ipgmod,$portgmod,$num,$error,2);
if( !$sock ){
echo( "<b style=\"color:red;\">Hors Ligne</b>");
}
if( $sock ){
echo( "<b style=\"color:green;\">En Ligne</b>" );
fclose($sock);
}
}Code : Tout sélectionner
<div class="col1-3">
<h2 class="separate">World of Warcraft 5.4.8</h2>
<div class="">
<p>Status : <b style="color:green"><?php echo $script->wowstatus($ipwow, $portwow); ?></b>
<br>Joueurs : <b><?php echo $script->online_wow($hotewow, $userwow, $passwow, $dbwow); ?>/150000</b>
<br><br><a href="<?php echo $sitewow; ?>" class="button" title="World Of Warcraft 5.4.8"><span>Site Web</span></a></p>
</div>
</div>
<div class="col1-3">
<h2 class="separate">Garry's Mod DarkRP</h2>
<div class="">
<p>Status : <?php echo $script->gmodstatus($ipgmod, $portgmod); ?>
<!--$query = source_query($ipgmod, $portgmod); $q = format_source_query($query); echo "Joueurs: ".$q['players']."/64"; -->
<br><b>En Développement</b>
<br><br><a href="<?php echo $sitegmod; ?>" class="button" title="Garry's Mod DarkRP"><span>Site Web</span></a></p>
</div>
</div> Edit : A noter que les IP des serveurs sont les mêmes, mais pas le port.
Voici :
Code : Tout sélectionner
$ipwow = "37.187.163.75";
$portwow = "8085";
$ipgmod = "37.187.163.75";
$portgmod = "27015";