Sådan udvikles en IRC Bot: 12 trin (med billeder)

Indholdsfortegnelse:

Sådan udvikles en IRC Bot: 12 trin (med billeder)
Sådan udvikles en IRC Bot: 12 trin (med billeder)

Video: Sådan udvikles en IRC Bot: 12 trin (med billeder)

Video: Sådan udvikles en IRC Bot: 12 trin (med billeder)
Video: Sådan Tjener Du Penge På Dine Billeder og Videoer 2024, April
Anonim

Hvis du har været på Internet Relay Chat (IRC), er der stor sandsynlighed for, at du på et tidspunkt har stødt på en bot. Bots er uafhængige programmer eller scripts, der opretter forbindelse til et netværk på samme måde som et menneske ville. De kan programmeres til at reagere på brugerkommandoer eller endda chatte. I denne vejledning kan du finde, hvad dine muligheder er for at bygge en IRC -bot samt hvordan du bygger en fra bunden.

Trin

Metode 1 af 2: Evaluering af muligheder

Udvikl et IRC Bot trin 1
Udvikl et IRC Bot trin 1

Trin 1. Overvej at installere et klientscript

Nogle gange vil du bare have en simpel opgave udført og ikke ønsker, at det skal være et uafhængigt program. I så fald kan du vedhæfte et script til en IRC -klient. Dette er ret almindeligt at gøre med mIRC, som har en robust scriptmotor og en lang række tilgængelige scripts. Dette er den nemmeste mulighed og kan varmt anbefales, hvis du ikke har meget eller nogen programmeringserfaring. I resten af denne vejledning kræver vejledningen en vis viden om computerprogrammering.

Udvikl et IRC Bot trin 2
Udvikl et IRC Bot trin 2

Trin 2. Overvej en allerede eksisterende kodebase til din bot

Der findes mange open source og gratis programmer, der kan hjælpe dig med hurtigt at oprette din egen tilpassede bot. Et sådant eksempel er Eggdrop, den ældste IRC -bot, der stadig vedligeholdes.

Udvikl et IRC Bot trin 3
Udvikl et IRC Bot trin 3

Trin 3. Overvej at skrive din egen bot

For avancerede IRC -brugere og udviklere, der allerede kender deres vej rundt i et programmeringssprog, er dette en god mulighed. Du kan bruge stort set ethvert sprog, du vil have, så længe det har socket -understøttelse, men populære at bruge inkluderer Python, Lua, PHP, C og Perl. Hvis du ikke kender nogen af disse, men du kender et andet sprog, er det ikke et problem. Du kan normalt finde eksempler på internettet på ethvert sprog, du ønsker. I denne artikel demonstrerer vi, hvordan vi bruger PHP. For at bruge PHP skal du have PHP-CLI installeret på din computer eller server.

  • PHP kan downloades fra php.net
  • PHP -scripts kan udføres fra kommandolinjen. Yderligere oplysninger og hjælp til PHP finder du på denne PHP -manualside.

Metode 2 af 2: Udvikling af din egen bot

Udvikl et IRC Bot trin 4
Udvikl et IRC Bot trin 4

Trin 1. Saml forbindelsesdetaljer

Du skal få følgende oplysninger for at kunne oprette forbindelse til netværket.

  • Server: Domænenavnet på den server, der bruges til at oprette forbindelse til IRC, f.eks

    chat.freenode.net

  • Havn: I de fleste tilfælde er dette 6667, men hvis du ikke er sikker, skal du kontrollere din egen IRC -klient eller netværkets websted.
  • Kaldenavn: Kælenavnet, din bot skal bruge. Husk, at nogle specialtegn normalt ikke er tilladt (@#! ~).
  • Ident: Identfeltet vises efter kaldenavnet, når nogen udfører en WHOIS som denne:

    kaldenavn! ident@værtsnavn

  • GECOS: Dette felt indeholder typisk en brugers rigtige navn eller en generel beskrivelse af bot, men du kan lægge, hvad du vil derinde.
  • Kanal: Du vil normalt have din bot til stede i en eller flere kanaler. På de fleste netværk er disse præfikset med '#', men det kan være noget andet.
Udvikl et IRC Bot trin 5
Udvikl et IRC Bot trin 5

Trin 2. Initialiser konfigurationen i dit script

Den mest grundlæggende måde at gøre dette på er ved at navngive et par variabler i henhold til konfigurationsnavnene ovenfor. Du kan også gemme dem i en config -fil og analysere dem, men lige nu holder vi bare fast i de absolutte nødvendigheder.

Udvikl et IRC Bot trin 6
Udvikl et IRC Bot trin 6

Trin 3. Opret forbindelse til netværket

For at gøre dette skal du åbne en stikkontakt til serveren på den angivne port. Du bør også tilføje nogle fejlhåndteringskoder i denne del, hvis forbindelsen mislykkes af en eller anden grund. I dette tilfælde giver PHP os nogle pæne funktioner til at håndtere fejlen effektivt.

Udvikl en IRC Bot Trin 7
Udvikl en IRC Bot Trin 7

Trin 4. Registrer din bot

Det betyder, at du skal levere dit kaldenavn, identitet og GECOS til serveren og ikke registrere dig hos NickServ. For at gøre dette skal du bare skrive NICK- og USER -kommandoerne til serveren, efterfulgt af en vognretur og ny linje. Det er bydende nødvendigt, at du gør det nøjagtigt som vist, for det er sådan det er specificeret i RFC1459, specifikationen for IRC -protokollen.

Bemærk, at de to midterste parametre (i dette tilfælde * og 8) skal angives, men de ignoreres af serveren. Disse to bruges kun mellem sammenkædede servere, ikke af en klient, der direkte forbinder

Udvikl en IRC Bot Trin 8
Udvikl en IRC Bot Trin 8

Trin 5. Bliv ved med at hente data fra stikket ved hjælp af en loop

Hvis du ikke brugte en loop, ville dit script øjeblikkeligt afsluttes, og botten ville i bund og grund være ubrugelig. For at forblive tilsluttet skal du hente data fra serveren, kontrollere, om der er input i den stream, du vil have, og reagere på dem i så fald. Her griber vi data ved hjælp af socket_read () for at få fat i alle tilgængelige data for os. Hvis der er det, fortsætter vi med at gøre, hvad der er i sløjfen. Det kan være nyttigt også at sende rå data til konsollen, så du kan se, hvad der foregår fra botens perspektiv.

Udvikl en IRC Bot Trin 9
Udvikl en IRC Bot Trin 9

Trin 6. Skriv en ping -handler

Dette er vigtigt. Hvis du ikke reagerer på pings rettidigt, afbryder serveren dig. Lad os tage os af det først. Pings ser sådan ud, når de sendes fra serveren:

PING: rajaniemi.freenode.net

. Serveren behøver ikke at sætte sit navn efter ':', den kan levere hvad den vil. Du * skal * gentage præcis det, serveren sagde, undtagen ved hjælp af PONG.

Udvikl en IRC Bot Trin 10
Udvikl en IRC Bot Trin 10

Trin 7. Deltag i dine kanaler

Okay, så vi har en bot, der opretter forbindelse til netværket og reagerer på pings, men ellers ikke gør noget. For at folk kan se og bruge din bot, skal den være i en kanal (ellers skal du fortælle den at svare på private beskeder).

  • For at gøre dette vil vi tjekke for serverstatuskoder 376 eller 422. 376 betyder, at MOTD (dagens meddelelse) er færdig. 422 betyder, at der ikke var nogen MOTD at sende. At MOTD bare er noget, serveren sender, når du opretter forbindelse, men det er en god indikator for, hvornår vi kan begynde at slutte sig til kanaler.
  • Du skal udstede en JOIN -kommando. Denne kommando kan efterfølges af en eller flere kanaler adskilt af et komma.
  • Bemærk, at de data, serveren sender, let afgrænses af mellemrum. På denne måde kan vi dele dataene og henvise dem ved hjælp af et array -indeks.
Udvikl en IRC Bot Trin 11
Udvikl en IRC Bot Trin 11

Trin 8. Svar på kanalbeskeder

Nu til den sjove del. Din bot har tilsluttet sig kanalen, så nu kan du bruge den til det, du gerne ville. Lad os oprette en eksempelkommando kaldet @moo.

  • Bemærk forskydningen, hvor meddelelser begynder (dette gælder både kanaler og private meddelelser). Det er altid det samme sted.
  • Du kan håndtere kommandoer med mellemrum i dem ved at splejse de klumpede data sammen igen ($ d). Det er uden for denne artikels anvendelsesområde.
  • Hvis målet er en kanal (f.eks. #Botters-test), svarer du på det. Hvis det er en privat besked, vil denne bit være din bots kaldenavn! Du skal derefter svare ved hjælp af afsenderens kaldenavn, ikke dit (ellers taler du til dig selv, og det er bare fjollet).
Udvikl en IRC Bot Trin 12
Udvikl en IRC Bot Trin 12

Trin 9. Udvid din bot

Du kan tilføje mange nye funktioner ved hjælp af ovenstående implementering. Der er mange andre kommandoer, der kan udstedes til IRC -netværket, såsom styring af ops, spark og forbud, indstilling af emnet, blandt mange andre funktioner.

Tips

  • Du kan producere resultatet af kommandoen "/me" ved at prefiks dine meddelelser sådan:

    • PRIVMSG #kanal: / 001ACTION tekst her / 001.
    • 001 betyder ASCII -tegn 1 og vil blive fortolket som sådan i en dobbeltciteret PHP -streng. Alternativt kan du bruge

      chr (1)

    • uden for snoren.
  • Farver kan frembringes i en meddelelse ved at prefiks "\ 003" (ASCII -kode 3) efterfulgt af et tal for en farve. 0 = hvid, 1 = sort, 2 = blå, 3 = grøn, 4 = rød […]. Se mIRC's side for flere farver.
  • Som et spørgsmål om høflighed, få samtykke fra kanalejere og IRC -operatører, før du bringer din bot online. Ikke alle netværk og kanaler har en velkommen politik over for bots, endda velopdragen.
  • Nogle IRC -dæmoner går ud over specifikationerne i protokollen og implementerer andre funktioner. Hvis du gearer det til et specifikt netværk, kan du helt sikkert gøre brug af disse funktioner, hvis du kender til deres protokol. Hvis du vil have din bot til at blive implementeret på flere netværk, skal du dog prøve at holde den til det, der er i RFC.

Anbefalede: