Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SERVERSPY.NET OU COMMENT DETOURNER DES INFOS SUR UN SERVEUR GRACE AU PHP (HL , Q3 , ...)


Information sur la source

Catégorie :Astuces Niveau : Initié Date de création : 30/11/2002 Date de mise à jour : 30/11/2002 15:14:21 Vu : 4 479

Note :
5,5 / 10 - par 2 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Bon pour commencer , je voudrai juste dire que vu qu'il s'agit d'un service payant , faites attention a l'utilisation que vous pourrez faire de ca !! Je l'ai uniquement car il s'agissait d'un defi pour moi !

Explication : ServerSpy.net est un site qui permet de connaitre le status d'un server type Half-Life ou autre (beaucoup d'autre) et de l'afficher dans une page , mais le probleme , l'edition des templates est uniquement limité au changement des couleurs du tableau afficher , comme vous pouvez le voir sur cette page :

http://www.serverspy.net/site/search/server.html?a=138.237.164.190:27015&g=0

(il s'agit d'un exemple c'est tout , c'est pas de la pub) !

Donc mon souci etait d arrivé a modifier ce "theme" pour :
- enlever les pubs qui traine dans un premier temps !
- afficher les infos comme bon me semble dans un second temps !

je repete que comme il s'agit d'un service payant , ceci peut etre considere comme du piratage meme si les informations obtenu n'ont pas ete difficile a trouver !!!!!! ATTENTION QUAND MEME ! (de base le service est pas payant en fait , c'est juste le changement de theme du tableau qui l'ai !! Attention donc !!)

donc l'idee c'est d'intercepter les modules javascript qui contient les informations sur le serveur et les affiche dans le tableau ! pour cela , un simple analyse du code source du lien ci dessus permet de determiner que "<SCRIPT LANGUAGE="JavaScript" SRC="http://share1.serverspy.net/cgi-bin/ssPERL.js?a=138.237.164.190:27015&g=0"></SCRIPT>" est la clef de notre probleme (il affiche le tableau directement sur la page par cette methode donc impossible a editer dans un premier temps)

Solution :
le PHP nous permet d intercepté ces informations et dans faire ce que l'on veut , notament grace a la fonction fopen() , puis avec un fgets de 4096 nous permet de lire le contenu du fichier ligne par ligne !!
il suffit donc de reperer les lignes des informations souhaités et des "couper" les elements des lignes non souhaité !!

Exemple de source donc (je ne vous fait attendre plus longtemps ;) !)
 

Source

  • <?
  • $file = fopen("http://share1.serverspy.net/cgi-bin/ssPERL.js?a=$ip&g=0", "r");
  • $i=0;
  • while (!feof($file)) {
  • $buffer = fgets($file, 4096);
  • $i = $i + 1;
  • if ($i==83) {
  • $buffer = str_replace("document.write('<TD CLASS=\"TDodd\">","",$buffer);
  • $buffer = str_replace("</TD>');","",$buffer);
  • $map = $buffer;
  • }
  • if ($i==91) {
  • $buffer = str_replace("document.write('<TD CLASS=\"TDodd\">","",$buffer);
  • $buffer = str_replace("</TD>');","",$buffer);
  • $nb_joueur = $buffer;
  • }
  • }
  • echo "<center><font face=verdana size=1><b>$ip</b><br><table><tr><td><font face=verdana size=1><b><u>Nb de joueurs :</u> $nb_joueur</b><br><b><u>Map:</u> $map</b></td></tr></table></font></center>";
  • fclose($file);
  • ?>
<?
$file = fopen("http://share1.serverspy.net/cgi-bin/ssPERL.js?a=$ip&g=0", "r");
$i=0;
while (!feof($file)) {
    $buffer = fgets($file, 4096);
    $i = $i + 1;
    if ($i==83) {
        $buffer = str_replace("document.write('<TD CLASS=\"TDodd\">","",$buffer);
        $buffer = str_replace("</TD>');","",$buffer);
        $map = $buffer;
    }
    if ($i==91) {
        $buffer = str_replace("document.write('<TD CLASS=\"TDodd\">","",$buffer);
        $buffer = str_replace("</TD>');","",$buffer);
        $nb_joueur = $buffer;
    }
}
echo "<center><font face=verdana size=1><b>$ip</b><br><table><tr><td><font face=verdana size=1><b><u>Nb de joueurs :</u> $nb_joueur</b><br><b><u>Map:</u> $map</b></td></tr></table></font></center>";
fclose($file);
?>

Conclusion

le i represente le numero de la ligne en cours ! donc rien ne vous empeche de remettre un autre if ($i=157) par exemple si c vous chante !

Conclusion
ce petit fichier php permet donc , avec le paramatre ip= dans l url (http://monsite/server.php?ip=123.123.123.123:12345) , d analyser un server en utilisant le moteur (qstat) de serverspy.net pour un server type HALFLIFE (g=0 dans la premiere ligne) !!
Je pense que c'est valable uniquement pour Halflife car les lignes du fichier pour les autres serveurs peuvent etre differentes , et donc vous donner des informations "idiotes" !

Dans mon exemple , j'ai juste recuperer le nombre de joueur sur le nombre total permit , ainsi que la map en cours ! le tout afficher dans un petit tableau bien moins encombrant que leur tableau enorme et plein de pub !

Voila Voila
en esperant pouvoir aider plus d'un webmaster ;) ! ++

P.S. :
- il serait peut etre utile donc de rajouter que c'est grace a serverspy.net que les info on ete recupere (a leur insus , je vous l accorde) , style en tout petit ecrit avec un lien , ca peu eviter les pb eventuelles avec eux !
- pour analyser le fichier en question et reperer les lignes contenant les infos , il suffit de telecharger le fichier http://share1.serverspy.net/cgi-bin/ssPERL.js?a=138.237.164.190:27015&g=0 (pour ceux server par exemple , changer l ip ou le jeux si necessaire !!) et de reperer les lignes ;) !!
- Si jamais il veulent vraiment empecher ceci , il le pourrait facilement , en changer le theme de base tout les jours par exemple , ce qui nous obligerait a recharger le fichier et rereperer les lignes a nouveau !!
 

Commentaires et avis

signaler à un administrateur
Commentaire de Viper31 le 30/11/2002 15:18:43

Pour ceux qui ai des noms des joueurs ! a vrai dire , je mis suis pas penché dessus encore ! je voulais juste un petit module pour mon site pour avoir un oeil sur le serveur CS ;) !

signaler à un administrateur
Commentaire de ido le 01/12/2002 13:01:52

pourquoi ne pas avoir simplement utilisé la librairie CURL ???
elle sert a ça apres tout :)

signaler à un administrateur
Commentaire de Viper31 le 01/12/2002 13:42:29

hu ? c koi ca ?

signaler à un administrateur
Commentaire de Neozix le 01/12/2002 17:05:21

En théorie ça à l'air génial, en pratique ça marche trop pas...

signaler à un administrateur
Commentaire de ido le 02/12/2002 08:57:20

c une librairie qui permet de faire un navigateur ds une variable...
comme ça tu peux traité l'information directempent et il gere aussi les post et get...

signaler à un administrateur
Commentaire de Viper31 le 02/12/2002 13:20:52

Neozix , si tu le veux je peux t'envoyer un fichier qui marche ! d ailleur meme ca ca marche , suffit de pas faire n importe quoi ! (petit exemple pour vous http://snipingsnip.free.fr/v2/ le petit module a gauche sur trois ligne ;) ! )

signaler à un administrateur
Commentaire de ido le 03/12/2002 17:22:30

Viper, si tu veux un exemple d'utilisation de CURL, va voir la :
http://artofido.woow-fr.com/script/script/lycos.php3

et pour le code source c'est la :
http://artofido.woow-fr.com/script/source.php3?page=./script/lycos.php3

@+

signaler à un administrateur
Commentaire de Viper31 le 05/12/2002 17:30:58

Yeah c sympatoche ca !!! je vais cherche un peu de doc dessus ;)  thx !

signaler à un administrateur
Commentaire de aquewel le 14/06/2004 01:43:09

Coment on fait pour faire marcher ce script ca a l'air sympa mais je n'arrive pas a ment servir merci du coup de main

signaler à un administrateur
Commentaire de Viper31 le 14/06/2004 02:06:15

bah visiblement , leur facon d afficher les infos d'un serveur n'est plus la meme ....

au bout d'un an et demi quand meme :p

A L occaz , je m'y penche dessus pour mettre a jour ;)

signaler à un administrateur
Commentaire de aquewel le 14/06/2004 14:13:28

avec le curl tu pense ke c'est possible ??????????????????????????????????

signaler à un administrateur
Commentaire de peoplehard le 01/01/2005 16:15:35

http://www.hostprogess.com/nofrag/cs/index.php?ip=217.174.212.46&port=27016

ip étant l'ip et port le port ^^

signaler à un administrateur
Commentaire de darkcyr le 14/03/2005 16:47:07

salut
je suis un noob en prog
(je fais que du html et encore je maitrise pas trop)
j'aimerais faire un equivalent du systeme server spy
j'aurais 2/3 questions a te poser

pourrais tu me contacter sur msn playeronethebest@caramail.com
c'est aussi mon email

allez a +

signaler à un administrateur
Commentaire de darkcyr le 14/03/2005 16:57:16

admin please vous pourriez suprimer mon commentaire (enfin les 2 lol) merci

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,33 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.