So entwickeln Sie einen IRC-Bot: 12 Schritte (mit Bildern)

Inhaltsverzeichnis:

So entwickeln Sie einen IRC-Bot: 12 Schritte (mit Bildern)
So entwickeln Sie einen IRC-Bot: 12 Schritte (mit Bildern)

Video: So entwickeln Sie einen IRC-Bot: 12 Schritte (mit Bildern)

Video: So entwickeln Sie einen IRC-Bot: 12 Schritte (mit Bildern)
Video: mylife Assist: Integration des Dexcom G6 in die mylife App 2024, April
Anonim

Wenn Sie im Internet Relay Chat (IRC) waren, sind Sie wahrscheinlich irgendwann auf einen Bot gestoßen. Bots sind unabhängige Programme oder Skripte, die sich wie ein Mensch mit einem Netzwerk verbinden. Sie können so programmiert werden, dass sie auf Benutzerbefehle reagieren oder sogar chatten. In diesem Handbuch erfahren Sie, welche Möglichkeiten Sie zum Erstellen eines IRC-Bots haben und wie Sie einen von Grund auf neu erstellen.

Schritte

Methode 1 von 2: Optionen bewerten

Entwickeln Sie einen IRC-Bot Schritt 1
Entwickeln Sie einen IRC-Bot Schritt 1

Schritt 1. Ziehen Sie die Installation eines Client-Skripts in Betracht

Manchmal möchten Sie nur eine einfache Aufgabe erledigen und möchten nicht, dass es ein unabhängiges Programm ist. In diesem Fall können Sie ein Skript an einen IRC-Client anhängen. Dies ist bei mIRC üblich, das über eine robuste Skript-Engine und eine Vielzahl verfügbarer Skripte verfügt. Dies ist die einfachste Option und wird dringend empfohlen, wenn Sie nicht viel oder keine Programmiererfahrung haben. Für den Rest dieses Handbuchs erfordern die Anweisungen einige Kenntnisse in der Computerprogrammierung.

Entwickeln Sie einen IRC-Bot Schritt 2
Entwickeln Sie einen IRC-Bot Schritt 2

Schritt 2. Ziehen Sie eine bereits vorhandene Codebasis für Ihren Bot in Betracht

Es gibt viele Open-Source- und kostenlose Programme, mit denen Sie schnell Ihren eigenen angepassten Bot einrichten können. Ein solches Beispiel ist Eggdrop, der älteste IRC-Bot, der noch gepflegt wird.

Entwickeln Sie einen IRC-Bot Schritt 3
Entwickeln Sie einen IRC-Bot Schritt 3

Schritt 3. Ziehen Sie in Betracht, Ihren eigenen Bot zu schreiben

Für fortgeschrittene IRC-Benutzer und Entwickler, die sich bereits mit einer Programmiersprache auskennen, ist dies eine großartige Option. Sie können so ziemlich jede beliebige Sprache verwenden, solange sie Socket-Unterstützung bietet. Zu den beliebtesten gehören jedoch Python, Lua, PHP, C und Perl. Wenn Sie keine dieser Sprachen beherrschen, aber eine andere Sprache beherrschen, ist das kein Problem. Normalerweise finden Sie Beispiele im Web in jeder gewünschten Sprache. In diesem Artikel demonstrieren wir die Verwendung von PHP. Um PHP verwenden zu können, muss PHP-CLI auf Ihrem Computer oder Server installiert sein.

  • PHP kann von php.net heruntergeladen werden
  • PHP-Skripte können über die Befehlszeile ausgeführt werden. Weitere Informationen und Hilfe zur Verwendung von PHP finden Sie auf dieser PHP-Handbuchseite.

Methode 2 von 2: Entwickeln Sie Ihren eigenen Bot

Entwickeln Sie einen IRC-Bot Schritt 4
Entwickeln Sie einen IRC-Bot Schritt 4

Schritt 1. Sammeln Sie die Verbindungsdetails

Sie benötigen die folgenden Informationen, um eine erfolgreiche Verbindung mit dem Netzwerk herzustellen.

  • Server: Der Domänenname des Servers, der für die Verbindung zum IRC verwendet wird, wie z

    chat.freenode.net

  • Hafen: In den meisten Fällen ist dies 6667, aber wenn Sie sich nicht sicher sind, überprüfen Sie Ihren eigenen IRC-Client oder die Website des Netzwerks.
  • Spitzname: Der Spitzname, den Ihr Bot verwenden soll. Beachten Sie, dass einige Sonderzeichen normalerweise nicht erlaubt sind (@#!~).
  • Ident: Das Ident-Feld erscheint nach dem Spitznamen, wenn jemand ein WHOIS wie folgt ausführt:

    Spitzname!ident@hostname

  • GECOS: Dieses Feld enthält normalerweise den echten Namen eines Benutzers oder eine allgemeine Beschreibung des Bots, aber Sie können dort alles eingeben, was Sie möchten.
  • Kanal: Normalerweise möchten Sie, dass Ihr Bot in einem oder mehreren Kanälen präsent ist. In den meisten Netzwerken wird diesen ein '#' vorangestellt, es kann jedoch auch etwas anderes sein.
Entwickeln Sie einen IRC-Bot Schritt 5
Entwickeln Sie einen IRC-Bot Schritt 5

Schritt 2. Initialisieren Sie die Konfiguration in Ihrem Skript

Der einfachste Weg, dies zu tun, besteht darin, einige Variablen gemäß den obigen Konfigurationsnamen zu benennen. Sie könnten sie auch in einer Konfigurationsdatei speichern und auswerten, aber im Moment bleiben wir nur beim absolut Notwendigen.

Entwickeln Sie einen IRC-Bot Schritt 6
Entwickeln Sie einen IRC-Bot Schritt 6

Schritt 3. Verbinden Sie sich mit dem Netzwerk

Dazu müssen Sie einen Socket zum Server auf dem angegebenen Port öffnen. Sie sollten in diesem Teil auch einen Fehlerbehandlungscode hinzufügen, falls die Verbindung aus irgendeinem Grund fehlschlägt. In diesem Fall stellt uns PHP einige nette Funktionen zur Verfügung, um den Fehler effektiv zu behandeln.

Entwickeln Sie einen IRC-Bot Schritt 7
Entwickeln Sie einen IRC-Bot Schritt 7

Schritt 4. Registrieren Sie Ihren Bot

Dies bedeutet, dass Sie Ihren Nickname, Ihre Identität und GECOS an den Server übermitteln und sich nicht bei NickServ registrieren. Schreiben Sie dazu einfach die Befehle NICK und USER auf den Server, gefolgt von einem Wagenrücklauf und einem Zeilenumbruch. Es ist zwingend erforderlich, dass Sie es genau so machen, wie es gezeigt wird, denn so ist es in RFC1459, der Spezifikation für das IRC-Protokoll, festgelegt.

Beachten Sie, dass die mittleren beiden Parameter (in diesem Fall * und 8) angegeben werden müssen, aber vom Server ignoriert werden. Diese beiden werden nur zwischen Verbindungsservern verwendet, nicht von einem direkt verbindenden Client

Entwickeln Sie einen IRC-Bot Schritt 8
Entwickeln Sie einen IRC-Bot Schritt 8

Schritt 5. Rufen Sie mit einer Schleife weiterhin Daten vom Socket ab

Wenn Sie keine Schleife verwenden, würde Ihr Skript sofort beendet und der Bot wäre im Grunde nutzlos. Um in Verbindung zu bleiben, müssen Sie Daten vom Server abrufen, nach Eingaben im gewünschten Stream suchen und gegebenenfalls darauf reagieren. Hier greifen wir Daten mit socket_read() ab, um alle für uns verfügbaren Daten zu erfassen. Wenn ja, machen wir weiter, was in der Schleife ist. Es kann hilfreich sein, die Rohdaten auch an die Konsole auszugeben, damit Sie aus der Sicht des Bots sehen können, was vor sich geht.

Entwickeln Sie einen IRC-Bot Schritt 9
Entwickeln Sie einen IRC-Bot Schritt 9

Schritt 6. Schreiben Sie einen Ping-Handler

Das ist wichtig. Wenn Sie nicht rechtzeitig auf Pings reagieren, wird der Server Sie trennen. Kümmern wir uns zuerst darum. Pings sehen so aus, wenn sie vom Server gesendet werden:

PING: rajaniemi.freenode.net

. Der Server muss seinen Namen nicht hinter das ':' setzen, er kann liefern, was er will. Sie *müssen* genau wiederholen, was der Server gesagt hat, außer mit PONG.

Entwickeln Sie einen IRC-Bot Schritt 10
Entwickeln Sie einen IRC-Bot Schritt 10

Schritt 7. Treten Sie Ihren Kanälen bei

Okay, wir haben also einen Bot, der sich mit dem Netzwerk verbindet und auf Pings antwortet, aber ansonsten nichts tut. Damit andere Ihren Bot sehen und verwenden können, sollte er sich in einem Kanal befinden (sonst müssten Sie ihm sagen, dass er auf private Nachrichten antworten soll).

  • Dazu prüfen wir die Serverstatuscodes 376 oder 422. 376 bedeutet, dass die MOTD (Nachricht des Tages) beendet ist. 422 bedeutet, dass keine MOTD gesendet werden musste. Dieses MOTD ist nur etwas, das der Server sendet, wenn Sie sich verbinden, aber es ist ein guter Indikator dafür, wann wir anfangen können, Kanälen beizutreten.
  • Sie müssen einen JOIN-Befehl ausgeben. Auf diesen Befehl können ein oder mehrere durch Kommas getrennte Kanäle folgen.
  • Beachten Sie, dass die vom Server gesendeten Daten praktischerweise durch Leerzeichen getrennt werden. Auf diese Weise können wir die Daten aufteilen und mit einem Array-Index darauf verweisen.
Entwickeln Sie einen IRC-Bot Schritt 11
Entwickeln Sie einen IRC-Bot Schritt 11

Schritt 8. Reagieren Sie auf Kanalnachrichten

Nun zum spaßigen Teil. Ihr Bot ist dem Kanal beigetreten, sodass Sie ihn jetzt für das verwenden können, was Sie möchten. Lassen Sie uns einen Beispielbefehl namens @moo erstellen.

  • Beachten Sie den Offset, an dem Nachrichten beginnen (dies gilt sowohl für Kanäle als auch für private Nachrichten). Es ist immer an der gleichen Stelle.
  • Sie können Befehle mit Leerzeichen verarbeiten, indem Sie die Datenblöcke wieder zusammenfügen ($d). Das würde den Rahmen dieses Artikels sprengen.
  • Wenn das Ziel ein Kanal ist (wie #botters-test), antworten Sie darauf. Wenn es sich um eine private Nachricht handelt, ist dieses Bit der Spitzname Ihres Bots! Sie müssen dann mit dem Spitznamen des Absenders antworten, nicht mit Ihrem (sonst würden Sie mit sich selbst sprechen, und das ist einfach albern).
Entwickeln Sie einen IRC-Bot Schritt 12
Entwickeln Sie einen IRC-Bot Schritt 12

Schritt 9. Erweitern Sie Ihren Bot

Mit der obigen Implementierung können Sie viele neue Funktionen hinzufügen. Es gibt viele andere Befehle, die an das IRC-Netzwerk ausgegeben werden können, wie zum Beispiel das Verwalten von Operationen, das Kicken und Bannen, das Setzen des Themas und viele andere Funktionen.

Tipps

  • Sie können das Ergebnis des Befehls "/me" erzeugen, indem Sie Ihre Nachrichten wie folgt voranstellen:

    • PRIVMSG #channel:\001AKTION Text hier\001.
    • 001 bedeutet ASCII-Zeichen 1 und wird als solches in einem PHP-String in doppelten Anführungszeichen interpretiert. Alternativ können Sie

      chr(1)

    • außerhalb der Saite.
  • Farben können in einer Nachricht erzeugt werden, indem "\003" (ASCII-Code 3) gefolgt von einer Zahl für eine Farbe vorangestellt wird. 0 = weiß, 1 = schwarz, 2 = blau, 3 = grün, 4 = rot […]. Weitere Farben finden Sie auf der mIRC-Seite.
  • Holen Sie aus Höflichkeit die Zustimmung der Kanalbesitzer und IRC-Betreiber ein, bevor Sie Ihren Bot online stellen. Nicht alle Netzwerke und Kanäle haben eine Willkommenspolitik gegenüber Bots, auch nicht gut erzogene.
  • Einige IRC-Daemons gehen über die Spezifikationen des Protokolls hinaus und implementieren andere Funktionen. Wenn Sie es auf ein bestimmtes Netzwerk ausrichten, können Sie diese Funktionen sicherlich nutzen, wenn Sie das Protokoll kennen. Wenn Sie jedoch möchten, dass Ihr Bot in mehreren Netzwerken bereitgestellt wird, versuchen Sie, ihn an den RFC-Werten anzupassen.

Empfohlen: