IRC-documentatie · Gevorderd
Een IRC-bot begrijpen en ontwikkelen
Een IRC-bot is een programma dat als client met een netwerk verbindt. Het kan gebeurtenissen volgen, op opdrachten antwoorden of een chatroom levendig houden. Betrouwbaarheid hangt vooral af van protocolverwerking, rechten en de snelheid waarmee berichten worden gestuurd.
Dialova-team · Gecontroleerd op
De cyclus van een bot #
- Open een TLS-verbinding en controleer het certificaat.
- Onderhandel CAP en authenticeer daarna het account als het beleid dat vereist.
- Geef de IRC-identiteit door en wacht tot registratie voltooid is.
- Open toegestane chatrooms en verwerk berichten, fouten en gebeurtenissen.
- Beantwoord PING, beperk verzending en zorg voor geleidelijk opnieuw verbinden.
S: PING :jeton-123
C: PONG :jeton-123
S: :Alice!alice@cloak.example PRIVMSG #atelier :!bonjour
C: PRIVMSG #atelier :Bonjour Alice !Dit fragment toont de gegevensstroom. Het is geen compleet uitvoerbaar programma. Een onderhouden IRC-bibliotheek kan transport en grammatica afhandelen. Ga er niet vanuit dat elke netwerkleesactie een volledige regel geeft.
Protocol, regels en acties scheiden #
| Onderdeel | Verantwoordelijkheid |
|---|---|
| Transport en parser | TLS, bytes, CRLF, gedeeltelijke berichten en grenzen. |
| IRC-status | Registratie, capabilities, chatrooms, identiteit en wijzigingen. |
| Botlogica | Een verzoek herkennen, de voorwaarden controleren en een voorgenomen actie maken. |
| Uitgaande wachtrij | Snelheid beperken, volgorde bewaren en herhaalde verzending bij herverbinden voorkomen. |
Vertrouw niet alleen op een nickname #
Een deelnemer kan de naam veranderen of syntax nabootsen. Gebruik bij gevoelige acties waar beschikbaar een door de server bevestigde identiteit. Controleer daarna de rechten voor de actie. Geef een spelbot niet zomaar operatorrechten alleen om te kunnen praten.
Ontvangen tekst is onbetrouwbare invoer. Geef die niet door aan een shell, een door tekstsamenvoeging gemaakte query of een code-uitvoerder. Verbindingsgeheimen horen in privéconfiguratie, niet in een repository of botantwoord.
Flood en lussen voorkomen #
Het netwerk bepaalt limieten. Er is geen universeel veilige verzendsnelheid. Reageer op fouten, bundel uitvoer waar nuttig en begrens acties per gebruiker en chatroom. Gebruik oplopende wachttijden voor herverbinden, geen directe lus.
Antwoord niet automatisch op NOTICE en voer oude gebruikersopdrachten niet opnieuw uit bij geschiedenisweergave. Met echo-message kan je eigen uitvoer terugkomen. Onderscheid die van inkomende verzoeken.
Bobot op Dialova #
Bobot verzorgt onder meer chatroomspellen op Dialova. Het is iets anders dan de grafische spellen en ledenaccounts. Dit laat zien dat een geautomatiseerde client een community kan aanvullen zonder een eigen gesloten chatprotocol.
Bronnen en controle
De voorbeelden gebruiken fictieve gebruikersnamen en domeinen, behalve waar verbindingspunten uitdrukkelijk zijn gedocumenteerd. Uitbreidingen en netwerkspecifieke instellingen worden in de tekst aangegeven.
- Modern IRC — specificatie van het clientprotocol ↗Bron specificatie · geraadpleegd op 2026-10-29
- IRCv3 — onderhandeling over clientmogelijkheden ↗Bron specificatie · geraadpleegd op 2026-10-29
- IRCv3 — account-tag ↗Bron specificatie · geraadpleegd op 2026-10-29
- IRCv3 — echo-message ↗Bron specificatie · geraadpleegd op 2026-10-29