IRC-Dokumentation · Fortgeschrittene
Einen IRC-Bot verstehen und entwickeln
Ein IRC-Bot ist ein Programm, das sich wie ein Client mit dem Netzwerk verbindet. Es kann Ereignisse verfolgen, auf Befehle antworten oder einen Channel mitgestalten. Seine Zuverlässigkeit hängt vor allem davon ab, wie es Protokoll, Berechtigungen und Sendeabstände behandelt.
Dialova-Team · Überprüft am
Der Verbindungsablauf eines Bots #
- Eine TLS-Verbindung öffnen und das Zertifikat prüfen.
- CAP aushandeln und das Konto authentifizieren, falls die Netzwerkrichtlinie das verlangt.
- Die IRC-Identität angeben und auf den Abschluss der Anmeldung warten.
- Erlaubten Channels beitreten und Nachrichten, Fehler und Ereignisse verarbeiten.
- PING beantworten, Sendelimits einhalten und bei Verbindungsabbrüchen mit zunehmend längeren Wartezeiten neu verbinden.
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !Der Ausschnitt zeigt den Ablauf, ist aber kein vollständiges ausführbares Programm. Eine gepflegte IRC-Bibliothek kann Transport und Syntax verarbeiten. Verlasse dich nicht darauf, dass ein einzelner Leseaufruf aus dem Netzwerk immer genau eine vollständige Zeile liefert.
Protokoll, Regeln und Aktionen trennen #
| Bereich | Aufgabe |
|---|---|
| Transport und Parser | TLS, Bytes, CRLF, unvollständige Nachrichten und Längengrenzen. |
| IRC-Zustand | Anmeldung, Capabilities, Channels, Identität und Änderungen. |
| Botlogik | Anfragen erkennen, Voraussetzungen prüfen und eine beabsichtigte Aktion bestimmen. |
| Ausgabewarteschlange | Sendehäufigkeit begrenzen, Reihenfolge erhalten und wiederholtes Senden nach einer Wiederverbindung vermeiden. |
Nicht allein dem Nickname vertrauen #
Eine Person kann ihren Nickname ändern oder eine Befehlssyntax nachahmen. Verwende für sensible Aktionen nach Möglichkeit eine vom Server bestätigte Identität und prüfe anschließend die Berechtigung für die konkrete Aktion. Ein Spielebot braucht nicht allein deshalb Operatorrechte, um Nachrichten senden zu können.
Empfangene Texte sind nicht vertrauenswürdige Eingaben. Übergib sie weder einer Shell noch einer durch Zeichenkettenverkettung gebauten Abfrage oder einer Codeausführung. Zugangsdaten gehören in eine private Konfiguration, nicht in ein Repository oder eine Botantwort.
Flood und Antwortschleifen vermeiden #
Die Grenzen legt das Netzwerk fest. Es gibt keinen überall sicheren Sendeabstand. Verarbeite Fehlermeldungen, fasse Ausgaben sinnvoll zusammen und begrenze Aktionen pro Benutzer und Channel. Bei Wiederverbindungen sollten die Wartezeiten schrittweise steigen, statt sofort eine neue Schleife zu starten.
Antworte nicht automatisch auf NOTICE und führe alte Benutzerbefehle beim Nachladen eines Verlaufs nicht erneut aus. Mit echo-message können deine eigenen Ausgaben zurückkommen. Unterscheide sie von eingehenden Anfragen.
Bobot auf Dialova #
Bobot betreut unter anderem die Channelspiele auf Dialova. Er ist von den grafischen Spielen der Website und den Mitgliedskonten getrennt. Das Beispiel zeigt, wie ein automatisierter Client eine Community bereichern kann, ohne ein proprietäres Chatprotokoll zu erfordern.
Quellen und Überprüfung
Die Beispiele verwenden erfundene Nicknames und Domains. Ausgenommen sind ausdrücklich dokumentierte Verbindungsadressen. Netzwerkspezifische Erweiterungen und Einstellungen werden im Text gekennzeichnet.
- Modern IRC — spécification du protocole client ↗Quelle Spezifikation · abgerufen am 2026-10-29
- IRCv3 — Client Capability Negotiation ↗Quelle Spezifikation · abgerufen am 2026-10-29
- IRCv3 — account-tag ↗Quelle Spezifikation · abgerufen am 2026-10-29
- IRCv3 — echo-message ↗Quelle Spezifikation · abgerufen am 2026-10-29