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 !

BOT IRC + SCAN DE PARTIES COUNTER-STRIKE EN UDP


Information sur la source

Catégorie :Réseaux & Internet Niveau : Initié Date de création : 21/10/2004 Date de mise à jour : 21/10/2004 17:07:07 Vu / téléchargé: 9 147 / 655

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Petit bot IRC tout basique qui scanne les parties de Counter-Strike sur un réseau local et les affiche dans IRC si quelqu'un tape !parties sur le chan
 

Conclusion

Le programme est très basique et devra être profondément modifié avant d'être véritablement efficace mais au moins il marche :)

A modifier pour le rendre fonctionnel sur un autre réseau :
Dans le fichier bot.cpp :
- L'adresse du serveur IRC
- Le nom du chan auquel doit se connecter le bot
- Le nick du bot
- La liste des admins

Dans le fichier scan.cpp :
- Les ips a scanner ie l'ip de base + l'intervalle d'ips

Pour compiler il faut linker avec la lib winsock2

Remarque :
Le scanner de parties utilise une methode quelque peu bourrine, il semblerait qu en fait les serveurs Half-Life broadcastent (255.255.255.255) leur ip pour que les clients sachent les serveurs dispo. Je suis en train d étudier cette possibilité...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

21 octobre 2004 17:05:53 :
21 octobre 2004 17:07:07 :

Commentaires et avis

signaler à un administrateur
Commentaire de Toadstool le 09/11/2004 22:57:03

En fait grâce a ethereal j ai trouvé que ce sont les clients half-life qui broadcastent un paquet "\037\037\037\037infostring\0" (adresse ip 255.255.255.255) sur la plage de ports UDP 27015 - 27024.

Ainsi pour éviter d envoyer un ping a chaque ip possible du réseau, il suffit de faire de même et de récupérer grâce à une librairie comme pcap les paquets UDP renvoyés...

Je suis en train de voir comment faire :)

signaler à un administrateur
Commentaire de Toadstool le 18/11/2004 01:47:27

J ai abandonné l idée d intégrer le scanner de parties dans le bot. Celui-ci sera finalement un processus indépendant qui écrit les infos dans un fichier xml accessible à plusieurs autre applications comme le bot irc ou un serveur apache par exemple.

signaler à un administrateur
Commentaire de rclsilver02 le 09/12/2004 07:10:49

salut, pour le clan dont je fais partie je souhaiterai aussi faire un bot irc avec scan des serveurs.. mais avec steam je sais pas trop comment faire :o tu as des nouvelles infos ? peut etre un site?  tu veux dire quoi par "En fait grâce a ethereal j ai trouvé que ce sont les clients half-life qui broadcastent un paquet "\037\037\037\037infostring\0" (adresse ip 255.255.255.255) sur la plage de ports UDP 27015 - 27024." ? je comprends pas trop :) si tu as qq minutes tu voudrais bien m'expliquer stp ?

Merci d'avance ... Rclsilver

signaler à un administrateur
Commentaire de Toadstool le 09/12/2004 12:32:49

Alors vu que tu parles de steam je suppose que ton bot c'est pour CS:Source que tu veux le faire ? Si c'est le cas je peux pas trop te renseigner : j'ai pas encore récupéré le SDK pour HL2 (steam c'est mal :D ).

Sinon, pour ce qui est de ljhistoire du broadcast en fait les clients half-life (ie le jeu quand tu veux te connecter à un serveur) demandent lorsque tu es sur la page Parties Reseau Local à tous les serveurs de renvoyer des infos :
Pour cela, comme au départ il connait pas l'ip des serveurs allumés, le client envoit la demande d'info "\037\037\037\037infostring\0" à l'adresse 255.255.255.255 qui, pour simplifier, permet en fait d'envoyer à tout le  monde (broadcast).

Les serveurs CS fonctionnent sur les ports UDP 27015 à 27024 donc on broadcaste pour chaque port de façon à ne rater aucun serveur.

Ca évite d'envoyer à chaque ip sur chaque port la requête d'info et ainsi de ne pas surcharger le réseau...

Heu j'espère que j'ai été clair (c'est pas gagné...). Si t'as d'autres questions n'hésite pas...

signaler à un administrateur
Commentaire de Toadstool le 09/12/2004 12:35:23

Ah oui si t'es motivé tu peux essayer de lire l'implémentation de ce que je raconte. C'est dans l'autre source que j'ai posté "Scan de parties Counter-Strike" ou quelquechose comme ça...

signaler à un administrateur
Commentaire de rclsilver02 le 09/12/2004 17:16:39

alors, pour moi c'est bien CS 1.6 pas CS source... pour le brodcast, je pense avoir saisi ce que tu voulais dire... mais quand j'essaie de ping 255.255.255.255 ça reponds pas c'est normal ? sinon tu n'aurais pas une doc du protocole (rfc sdk ou autre ? ) merci d'avance, sinon ben pour la motivation c'est surtout pour occuper le temps :o et pis bon pour motiver des gens a venir sur irc pck bon :o


+++ :o)

signaler à un administrateur
Commentaire de Toadstool le 09/12/2004 17:42:01

Alors l'ip 255.255.255.255 ne correspond pas à une machine donc c'est normal que le ping ne marche pas. C'est juste une adresse permettant d'envoyer des données à toutes les machines d'un coup si tu veux.

Sinon pour le protocole y a tout ce qui faut dans la source c'est exactement ce qu'il y a dans le sdk d'hl à propos des dialogues avec le serveur.

Voila ++

signaler à un administrateur
Commentaire de rclsilver02 le 09/12/2004 20:14:09

ah d'accord, mais quand tu dis toutes les machines, c'est toutes les machines qui ont un serveur hl ? ou toutes les machines connectées au net ?

signaler à un administrateur
Commentaire de Toadstool le 09/12/2004 20:23:46

toutes toutes toutes c'est du super broadcast ça sinon si c'était que sur un reseau local ce serait une adresse du style 172.16.0.255 avec laquelle tu broadcaste que sur les machines en 172.16.*.* (c'est des ips privées)

signaler à un administrateur
Commentaire de rclsilver02 le 09/12/2004 20:55:33

oki, donc j'ai fait mes testes avec VB... j'envoie Chr(255) & Chr(255) & Chr(255) & Chr(255) & "infostring" & Chr(0) sur 255.255.255.255 sur le port 27019 par exemple, et je reçois rien c'est normal ? je suis en UDP pourtant :o

signaler à un administrateur
Commentaire de rclsilver02 le 13/12/2004 06:48:28

apparement, le broadcast c'est only LAN... donc en fait, d'apres qq potes, le scaner de steam se connecterait à un master server, et c'est lui qui donnerait la liste des serveurs avec qq infos... donc je vais essayer de voir dans cette direction :o) je tiens au courrant

signaler à un administrateur
Commentaire de Kdecherf le 28/03/2007 15:09:36

Je confirme que pour les serveurs Internet tout se fait depuis un serveur maître. Les connaisseurs Valve sous Linux pourront vous le confirmer (logs information sur les requêtes vers le serveur maître).

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,343 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é.