AccueilAccueil  PortailPortail  CalendrierCalendrier  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
 

[ DEV #PhP ] Satus checker de servers Zdaemon

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivante
AuteurMessage
Shid0
Back From Hell



Age : 18
Inscrit le : 02 Mar 2006
Messages : 549
Clan(s) : TwT ( hahah ^^ )

MessageSujet: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 17:15

Salut a tous , comme vous le savez pour mon site de clan et pour le nouveau site de la cfd j'ai comme projet de faire un status checker
ici nous prendrons pour exemple les serveurs de Fred :

Code:
<?php
$fp = fsockopen("secteur-lambda.servegame.com", 1066, $errno, $errstr, 30);
 if (!$fp)
 {
 echo "$errstr ($errno)<br />\n"; echo '<img src="serveur_down.gif">';
 }
 else
 {
 echo '<img src="serveur_up.gif">';
 }
 fclose($fp);
 ?>


Pour les images c'est ici :

http://xxxshidoxxx.jexiste.fr/TwT/serveur_down.gif
http://xxxshidoxxx.jexiste.fr/TwT/serveur_up.gif

Et comme vous pouvez vous en doutez si je poste la c'est que j'ai un leger probleme , comme vous pouvez le voir la :
http://xxxshidoxxx.jexiste.fr/TwT/test.php

apres un moment ......

Citation:
Warning: fsockopen() [function.fsockopen]: unable to connect to secteur-lambda.servegame.com:1066 in /home/.filer4/xxxshidoxxx/www/TwT/test.php on line 12
Connection timed out (110)

Warning: fclose(): supplied argument is not a valid stream resource in /home/.filer4/xxxshidoxxx/www/TwT/test.php on line 21


donc bon 2 choses viennent faire chier :

- L'ip des serveur de Fred est elle bien secteur-lambda.servegame.com
Fred heberge -t-il ses serveur sous le port 1066 ?


Citation:
fclose(): supplied argument is not a valid stream resource in /home/.filer4/xxxshidoxxx/www/TwT/test.php on line 21

Erreur due au code ? ou a cause de l'impossibilite de ce conecter ?
si c'est le code je peu l'optimiser si c'est un probleme du a l'ip de fred il faut voir avec lui .
Enfin apres c'est ce que je pense


donc si vous avez une idee a propos de ce code , une remarque , si fred tu passe par la il faut me repondre ^^

voila j'espere que vous aurrez des idees
wilou on va voir si ton epita est si bien Smile



Ps : si j'ai au moins l'ip des serveurs de Fred + le port nous pouvons ajouter :

-Service Ping ( affichage du ping en temps reel sans aller sur zdaemon c'est la fonction §ping )
-Voir meme un affichage des scores en temps reel sans zdaemon ( ca c'est moins sur )
Revenir en haut Aller en bas
Fred
Spider Mastermind



Age : 36
Inscrit le : 02 Mar 2006
Messages : 1524
Localisation : perdu quelque part dans le sud-ouest(31)
Clan(s) : [SL]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 18:24

Merci Thomas pour ce topic, ça répond, en partie à mes attentes Smile
Toutes fois plusieurs points à éclaircir,

La fonction $fsockopen ne fonctionne pas vers mon serveur, le socket est désactivé par défaut, ne me demande pas de l'activer je ne sais absolument pas comment faire.

L'IP à y être c'est toujours mieux de l'avoir donc:
82.247.182.59

Les ports vont de 10659 à 10666

Cela dit, je suis derrière un routeur, ça peut avoir une incidence...

Et si tu utilises l'url prends plutôt celle-ci :
http://secteur-lambda.org (c'est plus court ^^)

Malgré tout, il n'est pas impossible de renifler les serveurs, la preuve en est qu’ils apparaissent bien dans la liste de du zlauncher.

Peut être aussi que le php n'est pas le langage le mieux adapté pour ça, zserv32 est codé en assembleur il me semble... (Pas sur à 100%)

Un autre indice peut être,
ici on peu voir le resultat d'e codes que j'ai trouvé pour les serveurs valves
http://www.secteur-lambda.org/server_line/stat/test.html

Voici ce code:


Code:

<?php
  $ip = 'ucc5';
  $port = '27015';
   
  if (isset($_GET['ip'])) $ip=$_GET['ip'];
  if (isset($_GET['port'])) $port=$_GET['port'];
    function getByte(&$chaine)
    {
       $data = ord(substr($chaine, 0, 1));
     
       $chaine = substr($chaine, 1);
       
       return $data;
    }
   
    function getString(&$chaine)
    {   
       $data=substr($chaine,0,strpos($chaine,chr(0)));
      $chaine=substr($chaine,strpos($chaine,chr(0))+1);
       return $data;
    }
    function getInfos($reponse,&$info){
      if (substr($reponse,4,1)=="m"){ //Le moteur CS1.5
        $pattern = "#\xFF\xFF\xFF\xFF\x6D#";
        $reponse = preg_replace($pattern, '', $reponse);
         $reponse=strstr($reponse,chr(0));
         $skip=1;
      }
      elseif(substr($reponse,4,1)=="I"){ // Le moteur source
        $pattern = "#\xFF\xFF\xFF\xFF\x49#";
        $reponse = preg_replace($pattern, '', $reponse);
      }
      else{
        return 0;
      }
      $info['version'] = getByte($reponse);
      //$info['ip'] = $ip;
      //$info['port'] = $port;
      $info['name'] = trim(getString($reponse));
      $info['map'] = getString($reponse);
      $info['gamedir'] = getString($reponse);
      $info['gamedesc'] = getString($reponse);
      //if (!$skip) $reponse=substr($reponse,2);
      $info['numplayers'] = getByte($reponse);
      $info['maxplayers'] = getByte($reponse);
      $info['bot'] = getByte($reponse);
      $info['letype'] = chr(getByte($reponse));
      $info['os'] = chr(getByte($reponse));
      $info['password'] = getByte($reponse);
      $info['secure'] = getByte($reponse);
      return 1;
    }
  $socket = @stream_socket_client('udp://'.$ip.':'.$port,$errno);
 
  if (!$errno){
    stream_set_timeout($socket, 3);
    $cmd = "\xFF\xFF\xFF\xFFTSource Engine Query";
    $length = strlen($cmd);
    fwrite($socket, $cmd, $length);
    $response = @fread($socket, 1500);
  }
        if (empty($response))
      {
         $offline= 'Server Offline';
      }
      else
      {
          if (!getInfos($response,$info)) die();
      }
           
          if (!empty($offline)){
            echo "Serveur Hors-ligne";
          }
          else{
            echo '<table border="0" width="400px">';         
          echo '<tr><td>Nom du serveur</td><td>'.$info['name'].'</td></tr>
<body text="#00FF00" bgcolor="#00004A" style="font-family: Arial">

';
          echo '<tr><td>Jeu</td><td>'.$info['gamedesc'].'</td></tr>';
          echo '<tr><td>Map</td><td>'.$info['map'].'</td></tr>';
          echo '<tr><td>Joueurs</td><td>'.$info['maxplayers'].'</td></tr>';
          echo '<tr><td>Bot</td><td>'.$info['bot'].'</td></tr>';
          echo '<tr><td>Systeme d\'exploitation</td><td>'.(($info['os']=="w")? "windows":"windows").'</td></tr>';
          //echo '<tr><td>Protection<b>:</b></td><td>'.(($info['passord'])? "Mot de passe":"").(($info['secure'])? " VAC":"").'</td></tr>';
          echo '</table><br />';
          }
?>


Peut être saurais-tu l'addapter pour zdaemon ?
_________________


Mieux vaut enlever sa veste que de la retourner...
Revenir en haut Aller en bas
Shid0
Back From Hell



Age : 18
Inscrit le : 02 Mar 2006
Messages : 549
Clan(s) : TwT ( hahah ^^ )

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 19:43

Je vai voir pour le code Valve mais deja avec ton ip +les ports ca me fait avancer ^^ je vous donne les resultats d'ici demain meme heure
Revenir en haut Aller en bas
[WH]-Wilou84
Administrateur



Age : 24
Inscrit le : 02 Mar 2006
Messages : 12863
Localisation : Paris / Meunet sur Vatan, France
Clan(s) : [QnB], [CFD]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 20:02

Thomas25_TwT a écrit:

voila j'espere que vous aurrez des idees
wilou on va voir si ton epita est si bien Smile

Etant redoublant, je ne suis pas parti en stage, et donc je n'ai pas touché à PHP, ASP .NET, C#, Java et le reste.
En C / C++ ok par contre Smile

Si j'avais pu aider, je l'aurais fait dans le topic "PHP" que Fred a fait Wink
Désolé.
_________________
Revenir en haut Aller en bas
Fred
Spider Mastermind



Age : 36
Inscrit le : 02 Mar 2006
Messages : 1524
Localisation : perdu quelque part dans le sud-ouest(31)
Clan(s) : [SL]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 20:58

@Wil:

Tu sais faire ça en C++ ?

Nan c'est juste une question au cas où, cela dit, de nos jours il serait avantageux pour toi de te familiariser avec le php et asp, ça devient une référence pour l’emploi si j'en crois la parution des annonces d'offres.
_________________


Mieux vaut enlever sa veste que de la retourner...
Revenir en haut Aller en bas
Shid0
Back From Hell



Age : 18
Inscrit le : 02 Mar 2006
Messages : 549
Clan(s) : TwT ( hahah ^^ )

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 21:50

Le c/c++ et le php ce ressemblent enormement donc tu a deja quelques bases
Revenir en haut Aller en bas
[WH]-Wilou84
Administrateur



Age : 24
Inscrit le : 02 Mar 2006
Messages : 12863
Localisation : Paris / Meunet sur Vatan, France
Clan(s) : [QnB], [CFD]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 22:29

Thomas25_TwT a écrit:
Le c/c++ et le php ce ressemblent enormement donc tu a deja quelques bases

En effet. Mais je ne passe déjà pas suffisamment de temps sur mes propres projets.

Deux trucs qui me semblent bizarres :
- Zserv32 codé en assembleur ? Shocked
Ca ma paraît bizarre : un truc codé en assembleur ne va fonctionner que sur certaines machines possédant la même architecture ( un code assembleur est spécifique à une archi donnée ), et ça réduit fortement la compatibilité.

- Les sockets sont des outils de communication réseau de base, normalement c'est inclus sur tous les systèmes.

En gros, l'appel à :
Code:
$socket = @stream_socket_client('udp://'.$ip.':'.$port,$errno);

te met quoi comme erreur ?
_________________
Revenir en haut Aller en bas
Fred
Spider Mastermind



Age : 36
Inscrit le : 02 Mar 2006
Messages : 1524
Localisation : perdu quelque part dans le sud-ouest(31)
Clan(s) : [SL]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 23:46

[WH]-Wilou84 a écrit:

Deux trucs qui me semblent bizarres :
- Zserv32 codé en assembleur ? Shocked
Ca ma paraît bizarre : un truc codé en assembleur ne va fonctionner que sur certaines machines possédant la même architecture ( un code assembleur est spécifique à une archi donnée ), et ça réduit fortement la compatibilité.

Fred a écrit:
zserv32 est codé en assembleur il me semble... (Pas sur à 100%)

disons que je me suis un peu trop avancé...

[WH]-Wilou84 a écrit:

- Les sockets sont des outils de communication réseau de base, normalement c'est inclus sur tous les systèmes.

En gros, l'appel à :
Code:
$socket = @stream_socket_client('udp://'.$ip.':'.$port,$errno);

te met quoi comme erreur ?

Aucune, une page toute blanche...
_________________


Mieux vaut enlever sa veste que de la retourner...
Revenir en haut Aller en bas
_DaRk_
Icon of Sin



Age : 18
Inscrit le : 07 Mai 2006
Messages : 5151
Localisation : Côte d'or (21)
Clan(s) : [dp] ~ (DC)

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mar 30 Oct - 23:58

Moi je vous propsoe de dmander à Oblacek puique sur leur site on voit l'état des serveurs en temps réel
_________________
Revenir en haut Aller en bas
Fsn76
Modérateur du chaos



Age : 20
Inscrit le : 08 Mar 2006
Messages : 1194
Localisation : Rouen 76
Clan(s) : [FRA]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mer 31 Oct - 7:46

Peut-être que sa peux vous aidez...

Il y a un type de lien qui vous connecte directement sur un serveur. C'est le ZDS Protocol.

Code:
zds://xxx.xxx.xxx.xxx:xxxxx



Exemple:

Cliquez ici et vous serez rediriger automtiquement sur le serveur[THE] king1

zds://88.208.235.63:11009

edit: avec IE selement Mad
Revenir en haut Aller en bas
Fred
Spider Mastermind



Age : 36
Inscrit le : 02 Mar 2006
Messages : 1524
Localisation : perdu quelque part dans le sud-ouest(31)
Clan(s) : [SL]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mer 31 Oct - 10:07

@Dark: puisque tu te proposes si gentiment, demande leur, tes infos seront utiles je pense.

@Fsn: bien vu ça peut être une solution aussi, attendons de voir ce qu'en pensera Thomas, perso, je ne suis pas suffisamment callé pour faire quelque chose
_________________


Mieux vaut enlever sa veste que de la retourner...
Revenir en haut Aller en bas
Shid0
Back From Hell



Age : 18
Inscrit le : 02 Mar 2006
Messages : 549
Clan(s) : TwT ( hahah ^^ )

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Mer 31 Oct - 14:30

Yo , Bon pour le status checker j'ai une idee en tete mais il me faut plus de temps , en attendant pour la fonction ping j'ai fait ca :


Code:
<?php
exec("ping -c 10 secteur-lambda.servegame.com", $list);
for ($i = 0; $i < count($list); $i++)
print $list[$i]."<br>";
?>



Seul bemol je ne peut pas le tester pour le moment car mon hebergeur ( jexiste ) Bugg un peut donc si vous pouvier uploader dans un fichier php la commande que je vien d'ecrire pour que nous puissions test ca serait nice .

pS : Pour les ignorants il faut heberger ca :

Code:
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Sans titre</title>
<meta name="generator" content="Namo WebEditor(Trial)">
</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p>&nbsp;</p>
<?php
exec("ping -c 10 secteur-lambda.servegame.com", $list);
for ($i = 0; $i < count($list); $i++)
print $list[$i]."<br>";
?>
</body>

</html>


et nous donne le lien pour voir si la fonction marche ^^
Revenir en haut Aller en bas
Fred
Spider Mastermind



Age : 36
Inscrit le : 02 Mar 2006
Messages : 1524
Localisation : perdu quelque part dans le sud-ouest(31)
Clan(s) : [SL]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Jeu 1 Nov - 10:46

Deja commence par utiliser la bonne adresse Rolling Eyes
je te l'ai deja dis c'est secteur-lambda.org et non secteur-lambda.sevegame.com

http://www.secteur-lambda.org/namo.php
_________________


Mieux vaut enlever sa veste que de la retourner...
Revenir en haut Aller en bas
Lammah
Heresiarch



Inscrit le : 08 Mar 2006
Messages : 2633
Localisation : Decharge Publique
Clan(s) : Cheese Lovers

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Jeu 1 Nov - 16:10

[WH]-Wilou84 a écrit:
Ca ma paraît bizarre : un truc codé en assembleur ne va fonctionner que sur certaines machines possédant la même architecture ( un code assembleur est spécifique à une archi donnée ), et ça réduit fortement la compatibilité.


rappelles toi que tous les processeurs sont concus autour d'un coeur x86 (et ce depuis les 286)
_________________
Revenir en haut Aller en bas
[WH]-Wilou84
Administrateur



Age : 24
Inscrit le : 02 Mar 2006
Messages : 12863
Localisation : Paris / Meunet sur Vatan, France
Clan(s) : [QnB], [CFD]

MessageSujet: Re: [ DEV #PhP ] Satus checker de servers Zdaemon   Jeu 1 Nov - 16:45

Lammah a écrit:
[WH]-Wilou84 a écrit:
Ca ma paraît bizarre : un truc codé en assembleur ne va fonctionner que sur certaines machines possédant la même architecture ( un code assembleur est spécifique à une archi donnée ), et ça réduit fortement la compatibilité.


rappelles toi que tous les processeurs sont concus autour d'un coeur x86 (et ce depuis les 286)

Pas tous, non...
HP-UX, Sparc, certaines archi de Sun Microsystems... Mais x86 est le plus courant, on est d'accord Smile
_________________
Revenir en haut Aller en bas

[ DEV #PhP ] Satus checker de servers Zdaemon

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivante

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
 :: ::: Communauté Française de Doom ::: :: ::: Informatique :::-