NWN - Maskado

Serveur online/offline ?

Répondre
Partager Rechercher
Bonjour,

Ma question n'a rien à voir avec les scripts ou les modules, mais c'est une question technique quand même :

Avec un ami nous allons héberger un serveur permanent. J'ai fait un site web, et j'aimerais simplement que le site puisse checker si notre serveur tourne. L'applet (ou autre chose) devrait checker l'adresse IP indiquée pour voir si le programme nwserver.exe tourne (ou si le port 5121 réponds ???) sur cette machine et ceci le plus fréquemment possible (genre toutes les minutes).

Si oui il indique "serveur online" sur le site, si non -> "serveur offline".

Quelqu'un a une idée comment on peut faire ?

Merci beaucoup, et bon jeu !
TheRack.
Un jolie petit code en php ^^

Des scripts existes sur le vault, mais je vais t'éviter de te faire faire une recherche en te donnant le dit script.

Code PHP:

$ipaddr "Mettre.Ici.L'adresseIP.DuServeur";
  
$port "5121"// Ici ce sera le port souvent 5121
  
$timeout 1// Ici c'est la durée d'écoute pour l'ouverture du socket, tu peu l'augmenté si tu le souhaite
  
  
$connect fsockopen"udp://" $ipaddr$port$errno$errstr$timeout );
  if ( ! 
$connect )    {
      print( 
"<h1>Serveur arrêté</h1><br>\n" );
      print( 
"<h3>ERREUR: $errno - $errstr</h3><br>\n" );
      exit;
  } else {
      
socket_set_timeout$connect$timeout );
     
$send "\xFE\xFD\x00\xE0\xEB\x2D\x0E\x14\x01\x0B\x01\x05\x08\x0A\x33\x34\x35\x13\x04\x36\x37\x38\x39\x14\x3A\x3B\x3C\x3D\x00\x00";
      
fwrite$connect$send );
      
$output fread$connect5000 );
          if ( ! 
$output ) {
          print ( 
"<h1>Status: Serveur arrêté.<br></h1>\n" );
      } else {
          
$lines explode"\x00"$output );
         print( 
"<u>Statut:</u> <i class='r'>En ligne</i><br>\n" );
  
  
          print( 
"<b>Catégorie du serveur:</b> <i class='r'>" );
          if ( 
$lines[16] == "274" ) {
              print( 
"Action</i><br>\n" );
          } elseif ( 
$lines[16] == "363" ) {
              print( 
"Story</i><br>\n" );
          } elseif ( 
$lines[16] == "364" ) {
              print( 
"Story Lite</i><br>\n" );
          } elseif ( 
$lines[16] == "275" ) {
              print( 
"Role Play</i><br>\n" );
          } elseif ( 
$lines[16] == "276" ) {
              print( 
"Team</i><br>\n" );
          } elseif ( 
$lines[16] == "365" ) {
              print( 
"Melee</i><br>\n" );
          } elseif ( 
$lines[16] == "366" ) {
              print( 
"Arena</i><br>\n" );
          } elseif ( 
$lines[16] == "277" ) {
              print( 
"Social</i><br>\n" );
          } elseif ( 
$lines[16] == "279" ) {
              print( 
"Alternative</i><br>\n" );
          } elseif ( 
$lines[16] == "278" ) {
              print( 
"PW Action</i><br>\n" );
          } elseif ( 
$lines[16] == "367" ) {
              print( 
"Persistant Role</i><br>\n" );
          } elseif ( 
$lines[16] == "368" ) {
              print( 
"Solo</i><br>\n" );
          } elseif ( 
$lines[16] == "370" ) {
              print( 
"Tech Support</i><br>\n" );
          }
         print( 
"<u>Type de jeux:</u> <i class='r'>$lines[2]</i><br>\n" );
         print( 
"<u>Nom du serveur:</u> <i class='r'>$lines[3]</i><br>\n" );
         print( 
"<u>Nom du module:</u> <i class='r'>$lines[4]</i><br>\n" );
          print( 
"<u>Version serveur:</u> <i class='r'>$lines[14]);
          if ( 
$lines[20] == '1' ) {
              print( 
" / XP-1 " );
          } elseif ( 
$lines[20] == '2' ) {
              print( 
" / XP-2 " );
          } elseif ( 
$lines[20] == '3') {
              print( 
" / XP-1 / XP-2 " );
          }
          print( 
"</i><br><br>\n" );
          
         print( 
"<u>Limite de niveau:</u> <i class='r'>$lines[7]</i> - <i class='r'>$lines[8]</i><br>\n" );
          
          print( 
"<u>PVP:</u> " );
          if ( 
$lines[9] == "NONE" ) {
              print( 
"<i class='r'>" );
          } elseif ( 
$lines[9] == "FULL" ) {
              print( 
"<i class='r'>" );
          } else {
              print( 
"<i class='r'>" );
          }
          print( 
"$lines[9]</i><br>\n" );
          
          print( 
"<u>Stockage des persos:</u> " );
          if ( 
$lines[19] == '1' ) {
             print( 
"<i class='r'>Local Vault</i><br>\n" );
          } else {
             print( 
"<i class='r'>sur le Serveur Vault</i><br>\n" );
          }
  
          print( 
"<u>Only One Party:</u> " );
          if ( 
$lines[12] == '1' ) {
             print( 
"<i class='r'>enabled</i><br>\n" );
          } else {
             print( 
"<i class='r'>disabled</i><br>\n" );
          }
          
          print( 
"<u>Pause joueur:</u> " );
          if ( 
$lines[13] == '1' ) {
             print( 
"<i class='r'>activé</i><br>\n" );
          } else {
             print( 
"<i class='r'>désactivé</i><br>\n" );
          }
          
          print( 
"<u>Restriction du nivo des objets:</u> " );
          if ( 
$lines[18] == '1' ) {
             print( 
"<i class='r'>activé</i><br>\n" );
          } else {
             print( 
"<i class='r'>désactivé</i><br>\n" );
          }
          print( 
"<u>Obligation des personnages legaux:</u> " );
          if ( 
$lines[17] == '1' ) {
             print( 
"<i class='r'>activé</i><br>\n" );
          } else {
             print( 
"<i class='r'>désactivé</i><br>\n" );
          }
          
          print( 
"<u>Password:</u> " );
          if ( 
$lines[10] == '0' ) {
             print( 
"<i class='r'>pas requis</i><br>\n" );
          } else {
             print( 
"<i class='r'>requis</i><br>\n" );
          }
          
         print( 
"<u>Nombre de joueur:</u> <i class='r'>$lines[5]</i> / <i class='r'>$lines[6]</i><br><br>\n" );
          
$dlines explode"\n"$lines[15] );
          print( 
"<u>Description du serveur:</u><br>" );
          print( 
"<i>\n" );
          foreach ( 
$dlines as $dline ) {
              print( 
"$dline<br>\n" );
          }
          print( 
"</i>\n" );
      }
  }
  
fclose$connect ); 
Ce script est à mettre ou tu le souhaites sur ton site (fichier php). Il te permettra de voir sur ton site si le serveur de jeu est en route, combien y a de PJ et les paramètres.

Attention, il y a quelques contraintes pour son utilisation :
-> hébergeur du site doit être compatible php
-> hébergeur doit autorisé les fonctions fsockopen (il me semble que chez free cette fonction est désactivé, truc à vérifier aujourd'hui)
-> adresse IP fixe pour le serveur de jeu (de préférence), sinon il me semble qu'il existe un petit truc gérant les redirections à voir avec les autres membres de cette communauté.

Voilou pour ta demande.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés
Rechercher
Rechercher:

Recherche avancée