Hvordan utvikle en IRC Bot: 12 trinn (med bilder)

Innholdsfortegnelse:

Hvordan utvikle en IRC Bot: 12 trinn (med bilder)
Hvordan utvikle en IRC Bot: 12 trinn (med bilder)

Video: Hvordan utvikle en IRC Bot: 12 trinn (med bilder)

Video: Hvordan utvikle en IRC Bot: 12 trinn (med bilder)
Video: Обнаружение скрытого UAP? | Выжить в черной дыре с Ави Лоэбом Obnaruzheniye skrytogo UAP? Avi Loebom 2024, April
Anonim

Hvis du har vært på Internet Relay Chat (IRC), er det sannsynlig at du har støtt på en bot på et tidspunkt. Bots er uavhengige programmer eller skript som kobles til et nettverk på samme måte som et menneske ville. De kan programmeres til å svare på brukerkommandoer eller til og med chatte. I denne guiden kan du finne hvilke alternativer du har for å bygge en IRC -bot, samt hvordan du bygger en fra bunnen av.

Trinn

Metode 1 av 2: Evaluering av alternativer

Utvikle en IRC Bot Trinn 1
Utvikle en IRC Bot Trinn 1

Trinn 1. Vurder å installere et klientskript

Noen ganger vil du bare ha en enkel oppgave utført og ikke at det skal være et uavhengig program. I så fall kan du legge ved et skript til en IRC -klient. Dette er ganske vanlig å gjøre med mIRC, som har en robust skriptmotor og et stort utvalg av tilgjengelige skript. Dette er det enkleste alternativet og anbefales på det sterkeste hvis du ikke har mye eller noen programmeringserfaring. For resten av denne veiledningen krever instruksjonene en viss kunnskap om dataprogrammering.

Utvikle en IRC Bot Trinn 2
Utvikle en IRC Bot Trinn 2

Trinn 2. Vurder en eksisterende kodebase for boten din

Det finnes mange åpen kildekode og gratis programmer som kan hjelpe deg med å sette opp din egen tilpassede bot raskt. Et slikt eksempel er Eggdrop, den eldste IRC -boten som fortsatt vedlikeholdes.

Utvikle en IRC Bot Trinn 3
Utvikle en IRC Bot Trinn 3

Trinn 3. Vurder å skrive din egen bot

For avanserte IRC -brukere og utviklere som allerede kjenner seg godt rundt et programmeringsspråk, er dette et flott alternativ. Du kan bruke stort sett hvilket som helst språk du vil så lenge den har støtte for sokkel, men populære å bruke inkluderer Python, Lua, PHP, C og Perl. Hvis du ikke kan noen av disse, men du kan et annet språk, er det ikke et problem. Du kan vanligvis finne eksempler på nettet på hvilket språk du vil. I denne artikkelen demonstrerer vi bruk av PHP. For å bruke PHP må du ha PHP-CLI installert på datamaskinen eller serveren.

  • PHP kan lastes ned fra php.net
  • PHP -skript kan kjøres fra kommandolinjen. For mer informasjon og hjelp med PHP, se denne PHP -håndboksiden.

Metode 2 av 2: Utvikle din egen bot

Utvikle en IRC Bot Trinn 4
Utvikle en IRC Bot Trinn 4

Trinn 1. Samle tilkoblingsdetaljer

Du må få følgende informasjon for å kunne koble til nettverket.

  • Server: Domenenavnet til serveren som brukes til å koble til IRC, for eksempel

    chat.freenode.net

  • Havn: I de fleste tilfeller er dette 6667, men hvis du er usikker, sjekk din egen IRC -klient eller nettverkets nettsted.
  • Kallenavn: Kallenavnet som boten din skal bruke. Husk at noen spesialtegn vanligvis ikke er tillatt (@#! ~).
  • Ident: Identfeltet vises etter kallenavnet når noen utfører en WHOIS som denne:

    kallenavn! ident@vertsnavn

  • GECOS: Dette feltet inneholder vanligvis en brukers virkelige navn eller en generell beskrivelse av boten, men du kan legge inn det du vil.
  • Kanal: Du vil vanligvis at boten din skal være tilstede i en eller flere kanaler. På de fleste nettverk har disse et prefiks med "#", men det kan være noe annet.
Utvikle en IRC Bot Trinn 5
Utvikle en IRC Bot Trinn 5

Trinn 2. Initialiser konfigurasjonen i skriptet

Den mest grunnleggende måten å gjøre dette på er å navngi noen få variabler i henhold til konfigurasjonsnavnene ovenfor. Du kan også lagre dem i en konfigurasjonsfil og analysere dem, men for øyeblikket holder vi oss til de absolutte nødvendighetene.

Utvikle en IRC Bot Trinn 6
Utvikle en IRC Bot Trinn 6

Trinn 3. Koble til nettverket

For å gjøre dette må du åpne en kontakt til serveren på den angitte porten. Du bør også legge til en feilhåndteringskode i denne delen hvis tilkoblingen mislykkes av en eller annen grunn. I dette tilfellet gir PHP oss noen fine funksjoner for å håndtere feilen effektivt.

Utvikle en IRC Bot Trinn 7
Utvikle en IRC Bot Trinn 7

Trinn 4. Registrer din bot

Dette betyr å oppgi kallenavn, identitet og GECOS til serveren, ikke registrere deg hos NickServ. For å gjøre dette, skriver du bare NICK- og USER -kommandoene til serveren, etterfulgt av en vognretur og ny linje. Det er viktig at du gjør det nøyaktig som vist, for det er slik det er spesifisert i RFC1459, spesifikasjonen for IRC -protokollen.

Vær oppmerksom på at de to midterste parameterne (i dette tilfellet * og 8) må spesifiseres, men de ignoreres av serveren. Disse to brukes bare mellom tilkoblede servere, ikke av en direkte tilkoblet klient

Utvikle en IRC Bot Trinn 8
Utvikle en IRC Bot Trinn 8

Trinn 5. Fortsett å hente data fra kontakten ved hjelp av en sløyfe

Hvis du ikke brukte en loop, ville skriptet umiddelbart avsluttes og boten ville i utgangspunktet være ubrukelig. For å forbli tilkoblet, må du hente data fra serveren, se etter eventuell input i strømmen du vil ha, og svare på den i så fall. Her tar vi tak i data ved hjelp av socket_read () for å hente alle tilgjengelige data for oss. Hvis det er det, fortsetter vi å gjøre det som er i løkken. Det kan være nyttig å også sende ut rådata til konsollen slik at du kan se hva som skjer fra botens perspektiv.

Utvikle en IRC Bot Trinn 9
Utvikle en IRC Bot Trinn 9

Trinn 6. Skriv en ping -behandler

Dette er viktig. Hvis du ikke svarer på ping i tide, kobler serveren deg fra. La oss ta vare på det først. Pings ser slik ut når de sendes fra serveren:

PING: rajaniemi.freenode.net

. Serveren trenger ikke å sette navnet sitt etter ':', den kan levere hva den vil. Du * må * gjenta nøyaktig hva serveren sa, bortsett fra å bruke PONG.

Utvikle en IRC Bot Trinn 10
Utvikle en IRC Bot Trinn 10

Trinn 7. Bli med på kanalene dine

Ok, så vi har en bot som kobles til nettverket og svarer på ping, men ellers ikke gjør noe. For at folk skal se og bruke boten din, bør den være i en kanal (ellers må du fortelle den at den skal svare på private meldinger).

  • For å gjøre dette, ser vi etter serverstatuskoder 376 eller 422. 376 betyr at MOTD (dagens melding) er ferdig. 422 betyr at det ikke var noen MOTD å sende. At MOTD bare er noe serveren sender når du kobler til, men det er en god indikator for når vi kan begynne å bli med i kanaler.
  • Du må utstede en JOIN -kommando. Denne kommandoen kan følges av en eller flere kanaler atskilt med et komma.
  • Legg merke til at dataene serveren sender er praktisk avgrenset av mellomrom. På denne måten kan vi dele dataene og referere til dem ved hjelp av en matrisindeks.
Utvikle en IRC Bot Trinn 11
Utvikle en IRC Bot Trinn 11

Trinn 8. Svar på kanalmeldinger

Nå for den morsomme delen. Boten din har sluttet seg til kanalen, så nå kan du bruke den til det du ville. La oss lage en eksempelkommando som heter @moo.

  • Legg merke til forskyvningen der meldinger begynner (dette gjelder både kanaler og private meldinger). Det er alltid på samme sted.
  • Du kan håndtere kommandoer med mellomrom i dem ved å splitte de delede dataene igjen ($ d). Det er utenfor rammen av denne artikkelen.
  • Hvis målet er en kanal (for eksempel #botters-test), svarer du på det. Hvis det er en privat melding, vil denne biten være botens kallenavn! Du må da svare med avsenderens kallenavn, ikke ditt (ellers snakker du til deg selv, og det er bare dumt).
Utvikle en IRC Bot Trinn 12
Utvikle en IRC Bot Trinn 12

Trinn 9. Utvid bot

Du kan legge til mange nye funksjoner ved å bruke implementeringen ovenfor. Det er mange andre kommandoer som kan utstedes til IRC -nettverket, for eksempel administrering av ops, spark og forbud, innstilling av tema, blant mange andre funksjoner.

Tips

  • Du kan lage resultatet av kommandoen "/me" ved å prefikse meldingene dine slik:

    • PRIVMSG #kanal: / 001AKTION -tekst her / 001.
    • 001 betyr ASCII -tegn 1 og vil bli tolket som sådan i en dobbelt sitert PHP -streng. Alternativt kan du bruke

      chr (1)

    • utenfor snoren.
  • Farger kan produseres i en melding ved å prefiksere "\ 003" (ASCII -kode 3) etterfulgt av et tall for en farge. 0 = hvit, 1 = svart, 2 = blå, 3 = grønn, 4 = rød […]. Se mIRCs side for flere farger.
  • Som et spørsmål om høflighet, få samtykke fra eiere og IRC -operatører før du bringer boten din online. Ikke alle nettverk og kanaler har en velkommen politikk overfor roboter, selv ikke veloppdragne.
  • Noen IRC -demoner går utover spesifikasjonene til protokollen og implementerer andre funksjoner. Hvis du gir det til et bestemt nettverk, kan du sikkert bruke disse funksjonene hvis du vet om protokollen deres. Hvis du vil at boten din skal distribueres på flere nettverk, kan du prøve å holde den til det som er i RFC.

Anbefalt: