Comment développer un bot IRC : 12 étapes (avec photos)

Table des matières:

Comment développer un bot IRC : 12 étapes (avec photos)
Comment développer un bot IRC : 12 étapes (avec photos)

Vidéo: Comment développer un bot IRC : 12 étapes (avec photos)

Vidéo: Comment développer un bot IRC : 12 étapes (avec photos)
Vidéo: Comment récupérer un compte Facebook piraté sans e-mail ni numéro de téléphone (2022) 2024, Avril
Anonim

Si vous avez été sur Internet Relay Chat (IRC), il est probable que vous ayez rencontré un bot à un moment donné. Les bots sont des programmes ou des scripts indépendants qui se connectent à un réseau de la même manière qu'un humain le ferait. Ils peuvent être programmés pour répondre aux commandes de l'utilisateur ou même discuter. Dans ce guide, vous pouvez trouver quelles sont vos options pour créer un bot IRC ainsi que comment en créer un à partir de zéro.

Pas

Méthode 1 sur 2: Évaluation des options

Développer un Bot IRC Étape 1
Développer un Bot IRC Étape 1

Étape 1. Envisagez d'installer un script client

Parfois, vous voulez juste qu'une tâche simple soit effectuée et que ce ne soit pas un programme indépendant. Dans ce cas, vous pouvez attacher un script à un client IRC. C'est assez courant avec mIRC, qui dispose d'un moteur de script robuste et d'une grande variété de scripts disponibles. C'est l'option la plus simple et fortement recommandée si vous n'avez pas beaucoup ou pas d'expérience en programmation. Pour la suite de ce guide, les instructions nécessitent une certaine connaissance de la programmation informatique à suivre.

Développer un Bot IRC Étape 2
Développer un Bot IRC Étape 2

Étape 2. Considérez une base de code préexistante pour votre bot

Il existe de nombreux programmes open source et gratuits qui peuvent vous aider à configurer rapidement votre propre bot personnalisé. Un de ces exemples est Eggdrop, le plus ancien bot IRC toujours maintenu.

Développer un Bot IRC Étape 3
Développer un Bot IRC Étape 3

Étape 3. Envisagez d'écrire votre propre bot

Pour les utilisateurs avancés d'IRC et les développeurs qui connaissent déjà un langage de programmation, c'est une excellente option. Vous pouvez utiliser à peu près n'importe quel langage tant qu'il prend en charge les sockets, mais les langages les plus courants sont Python, Lua, PHP, C et Perl. Si vous ne connaissez aucune de ces langues mais que vous connaissez une autre langue, ce n'est pas un problème. Vous pouvez généralement trouver des exemples sur le Web dans la langue de votre choix. Pour cet article, nous allons démontrer l'utilisation de PHP. Pour utiliser PHP, vous devez avoir installé PHP-CLI sur votre ordinateur ou serveur.

  • PHP peut être téléchargé à partir de php.net
  • Les scripts PHP peuvent être exécutés à partir de la ligne de commande. Pour plus d'informations et d'aide sur l'utilisation de PHP, consultez cette page de manuel PHP.

Méthode 2 sur 2: Développer votre propre bot

Développer un Bot IRC Étape 4
Développer un Bot IRC Étape 4

Étape 1. Rassemblez les détails de la connexion

Vous aurez besoin des informations suivantes pour vous connecter avec succès au réseau.

  • Serveur: Le nom de domaine du serveur utilisé pour se connecter à IRC, tel que

    chat.freenode.net

  • Port: Dans la plupart des cas, il s'agit de 6667, mais si vous n'êtes pas sûr, vérifiez votre propre client IRC ou le site Web du réseau.
  • Surnom: Le surnom que votre bot doit utiliser. Gardez à l'esprit que certains caractères spéciaux ne sont généralement pas autorisés (@#!~).
  • Identifiant: Le champ ident apparaît après le pseudonyme lorsque quelqu'un effectue un WHOIS comme celui-ci:

    pseudo!ident@nom_hôte

  • GECOS: Ce champ contient généralement le vrai nom d'un utilisateur ou une description générale du bot, mais vous pouvez y mettre ce que vous voulez.
  • Canaliser: Vous souhaitez généralement que votre bot soit présent dans un ou plusieurs canaux. Sur la plupart des réseaux, ceux-ci sont préfixés par '#' mais il peut s'agir d'autre chose.
Développer un Bot IRC Étape 5
Développer un Bot IRC Étape 5

Étape 2. Initialisez la configuration dans votre script

La façon la plus simple de le faire est de nommer quelques variables en fonction des noms de configuration ci-dessus. Vous pouvez également les stocker dans un fichier de configuration et les analyser, mais pour le moment, nous nous en tiendrons aux nécessités absolues.

Développer un Bot IRC Étape 6
Développer un Bot IRC Étape 6

Étape 3. Connectez-vous au réseau

Pour ce faire, vous devrez ouvrir un socket vers le serveur sur le port spécifié. Vous devez également ajouter du code de gestion des erreurs dans cette partie au cas où la connexion échouerait pour une raison quelconque. Dans ce cas, PHP nous fournit des fonctions intéressantes pour gérer efficacement l'erreur.

Développer un Bot IRC Étape 7
Développer un Bot IRC Étape 7

Étape 4. Enregistrez votre bot

Cela signifie fournir votre surnom, votre identifiant et GECOS au serveur, sans vous inscrire auprès de NickServ. Pour ce faire, écrivez simplement les commandes NICK et USER sur le serveur, suivies d'un retour chariot et d'une nouvelle ligne. Il est impératif que vous le fassiez exactement comme indiqué, car c'est ainsi que cela est spécifié dans la RFC1459, la spécification du protocole IRC.

Notez que les deux paramètres du milieu (dans ce cas, * et 8) doivent être spécifiés, mais ils sont ignorés par le serveur. Ces deux ne sont utilisés qu'entre des serveurs liés, pas par un client directement connecté

Développer un Bot IRC Étape 8
Développer un Bot IRC Étape 8

Étape 5. Continuez à récupérer les données du socket à l'aide d'une boucle

Si vous n'utilisiez pas de boucle, votre script se terminerait immédiatement et le bot serait fondamentalement inutile. Afin de rester connecté, vous devez récupérer les données du serveur, vérifier toute entrée dans le flux que vous souhaitez et y répondre si c'est le cas. Ici, nous récupérons des données en utilisant socket_read() pour récupérer toutes les données disponibles pour nous. Si c'est le cas, nous continuons à faire tout ce qui est dans la boucle. Il peut être utile de sortir également les données brutes sur la console afin que vous puissiez voir ce qui se passe du point de vue du bot.

Développer un Bot IRC Étape 9
Développer un Bot IRC Étape 9

Étape 6. Écrivez un gestionnaire de ping

C'est important. Si vous ne répondez pas aux pings à temps, le serveur vous déconnectera. Occupons-nous d'abord de cela. Les pings ressemblent à ceci lorsqu'ils sont envoyés depuis le serveur:

PING: rajaniemi.freenode.net

. Le serveur n'a pas besoin de mettre son nom après le ':', il peut fournir ce qu'il veut. Vous * devez * répéter exactement ce que le serveur a dit, sauf en utilisant PONG.

Développer un Bot IRC Étape 10
Développer un Bot IRC Étape 10

Étape 7. Rejoignez vos chaînes

D'accord, nous avons donc un bot qui se connecte au réseau et répond aux pings, mais ne fait rien autrement. Pour que les gens voient et utilisent votre bot, il doit être dans un canal (sinon vous devriez lui dire de répondre aux messages privés).

  • Pour ce faire, nous vérifierons les codes d'état du serveur 376 ou 422. 376 signifie que le MOTD (message du jour) est terminé. 422 signifie qu'il n'y avait pas de MOTD à envoyer. Ce MOTD est juste quelque chose que le serveur envoie lorsque vous vous connectez, mais c'est un bon indicateur du moment où nous pouvons commencer à rejoindre les canaux.
  • Vous devrez émettre une commande JOIN. Cette commande peut être suivie d'un ou plusieurs canaux séparés par une virgule.
  • Notez que les données envoyées par le serveur sont commodément délimitées par des espaces. De cette façon, nous pouvons diviser les données et les référencer à l'aide d'un index de tableau.
Développer un Bot IRC Étape 11
Développer un Bot IRC Étape 11

Étape 8. Répondez aux messages de canal

Maintenant pour la partie amusante. Votre bot a rejoint le canal, vous pouvez donc maintenant l'utiliser pour ce que vous vouliez. Créons un exemple de commande appelé @moo.

  • Notez le décalage où commencent les messages (cela s'applique à la fois aux canaux et aux messages privés). C'est toujours au même endroit.
  • Vous pouvez gérer les commandes contenant des espaces en rassemblant les données fragmentées ($d). Cela dépasse le cadre de cet article.
  • Si la cible est un canal (comme #botters-test), alors vous répondez à cela. S'il s'agit d'un message privé, ce bit sera le pseudo de votre bot ! Vous devez alors répondre en utilisant le pseudonyme de l'expéditeur, pas le vôtre (sinon vous parleriez à vous-même, et c'est juste idiot).
Développer un Bot IRC Étape 12
Développer un Bot IRC Étape 12

Étape 9. Étendez votre bot

Vous pouvez ajouter de nombreuses nouvelles fonctionnalités à l'aide de l'implémentation ci-dessus. Il existe de nombreuses autres commandes qui peuvent être envoyées au réseau IRC, telles que la gestion des opérations, l'exclusion et l'interdiction, la définition du sujet, parmi de nombreuses autres fonctionnalités.

Des astuces

  • Vous pouvez produire le résultat de la commande "/me" en préfixant vos messages comme ceci:

    • PRIVMSG #channel:\001ACTION texte ici\001.
    • 001 signifie caractère ASCII 1 et sera interprété comme tel dans une chaîne PHP entre guillemets. Alternativement, vous pouvez utiliser

      chr(1)

    • en dehors de la chaîne.
  • Les couleurs peuvent être produites dans un message en préfixant "\003" (code ASCII 3) suivi d'un numéro pour une couleur. 0 = blanc, 1 = noir, 2 = bleu, 3 = vert, 4 = rouge […]. Voir la page de mIRC pour plus de couleurs.
  • Par courtoisie, obtenez le consentement des propriétaires de canaux et des opérateurs IRC avant de mettre votre bot en ligne. Tous les réseaux et canaux n'ont pas de politique d'accueil envers les bots, même ceux qui se comportent bien.
  • Certains démons IRC vont au-delà des spécifications du protocole et implémentent d'autres fonctionnalités. Si vous l'adaptez à un réseau spécifique, vous pouvez certainement utiliser ces fonctionnalités si vous connaissez leur protocole. Cependant, si vous souhaitez que votre bot soit déployé sur plusieurs réseaux, essayez de vous en tenir à ce qui est dans la RFC.

Conseillé: