Πώς να αναπτύξετε ένα IRC Bot: 12 βήματα (με εικόνες)

Πίνακας περιεχομένων:

Πώς να αναπτύξετε ένα IRC Bot: 12 βήματα (με εικόνες)
Πώς να αναπτύξετε ένα IRC Bot: 12 βήματα (με εικόνες)

Βίντεο: Πώς να αναπτύξετε ένα IRC Bot: 12 βήματα (με εικόνες)

Βίντεο: Πώς να αναπτύξετε ένα IRC Bot: 12 βήματα (με εικόνες)
Βίντεο: Πώς να αποκαλύψεις έναν οποιονδήποτε αποθηκευμένο κωδικό 2024, Απρίλιος
Anonim

Εάν έχετε συμμετάσχει στο Internet Relay Chat (IRC), πιθανότατα έχετε συναντήσει κάποιο bot κάποια στιγμή. Τα bot είναι ανεξάρτητα προγράμματα ή δέσμες ενεργειών που συνδέονται με ένα δίκτυο με τον ίδιο τρόπο που θα έκανε ένας άνθρωπος. Μπορούν να προγραμματιστούν ώστε να ανταποκρίνονται στις εντολές των χρηστών ή ακόμα και να συνομιλούν. Σε αυτόν τον οδηγό, μπορείτε να βρείτε ποιες είναι οι επιλογές σας για τη δημιουργία ενός bot IRC καθώς και πώς να το δημιουργήσετε από την αρχή.

Βήματα

Μέθοδος 1 από 2: Αξιολόγηση επιλογών

Δημιουργήστε ένα IRC Bot Βήμα 1
Δημιουργήστε ένα IRC Bot Βήμα 1

Βήμα 1. Εξετάστε το ενδεχόμενο εγκατάστασης ενός σεναρίου πελάτη

Μερικές φορές θέλετε απλά να γίνει μια απλή εργασία και δεν θέλετε να είναι ένα ανεξάρτητο πρόγραμμα. Σε αυτήν την περίπτωση, μπορείτε να επισυνάψετε ένα σενάριο σε ένα πρόγραμμα -πελάτη IRC. Αυτό είναι αρκετά συνηθισμένο να συμβαίνει με το mIRC, το οποίο διαθέτει μια ισχυρή μηχανή δέσμης ενεργειών και μια μεγάλη ποικιλία διαθέσιμων σεναρίων. Αυτή είναι η ευκολότερη επιλογή και συνιστάται ιδιαίτερα εάν δεν έχετε μεγάλη ή καθόλου εμπειρία προγραμματισμού. Για τον υπόλοιπο οδηγό, οι οδηγίες απαιτούν κάποια γνώση προγραμματισμού υπολογιστή.

Αναπτύξτε ένα IRC Bot Βήμα 2
Αναπτύξτε ένα IRC Bot Βήμα 2

Βήμα 2. Εξετάστε μια προϋπάρχουσα βάση κώδικα για το bot σας

Υπάρχουν πολλά ανοιχτού κώδικα και δωρεάν προγράμματα που μπορούν να σας βοηθήσουν να ρυθμίσετε γρήγορα το δικό σας προσαρμοσμένο bot. Ένα τέτοιο παράδειγμα είναι το Eggdrop, το παλαιότερο IRC bot που εξακολουθεί να διατηρείται.

Αναπτύξτε ένα IRC Bot Βήμα 3
Αναπτύξτε ένα IRC Bot Βήμα 3

Βήμα 3. Σκεφτείτε να γράψετε το δικό σας bot

Για προχωρημένους χρήστες IRC και προγραμματιστές που γνωρίζουν ήδη το δρόμο τους γύρω από μια γλώσσα προγραμματισμού, αυτή είναι μια εξαιρετική επιλογή. Μπορείτε να χρησιμοποιήσετε σχεδόν οποιαδήποτε γλώσσα θέλετε αρκεί να έχει υποστήριξη πρίζας, αλλά οι δημοφιλείς για χρήση περιλαμβάνουν Python, Lua, PHP, C και Perl. Εάν δεν γνωρίζετε κανένα από αυτά αλλά γνωρίζετε άλλη γλώσσα, αυτό δεν είναι πρόβλημα. Συνήθως μπορείτε να βρείτε παραδείγματα στον ιστό σε όποια γλώσσα θέλετε. Για αυτό το άρθρο, θα επιδείξουμε τη χρήση της PHP. Για να χρησιμοποιήσετε PHP, θα πρέπει να έχετε εγκαταστήσει το PHP-CLI στον υπολογιστή ή τον διακομιστή σας.

  • Μπορείτε να κατεβάσετε την PHP από το php.net
  • Τα σενάρια PHP μπορούν να εκτελεστούν από τη γραμμή εντολών. Για πρόσθετες πληροφορίες και βοήθεια σχετικά με τη χρήση της PHP, ανατρέξτε σε αυτήν τη σελίδα εγχειριδίου PHP.

Μέθοδος 2 από 2: Αναπτύξτε το δικό σας Bot

Αναπτύξτε ένα IRC Bot Βήμα 4
Αναπτύξτε ένα IRC Bot Βήμα 4

Βήμα 1. Συγκεντρώστε τις λεπτομέρειες σύνδεσης

Θα χρειαστεί να λάβετε τις ακόλουθες πληροφορίες για να συνδεθείτε με επιτυχία στο δίκτυο.

  • Υπηρέτης: Το όνομα τομέα του διακομιστή που χρησιμοποιείται για τη σύνδεση στο IRC, όπως π.χ.

    chat.freenode.net

  • Λιμάνι: Στις περισσότερες περιπτώσεις, αυτό είναι 6667, αλλά αν δεν είστε σίγουροι, ελέγξτε το δικό σας πρόγραμμα -πελάτη IRC ή τον ιστότοπο του δικτύου.
  • Παρατσούκλι: Το ψευδώνυμο που πρέπει να χρησιμοποιεί το bot σας. Λάβετε υπόψη ότι συνήθως δεν επιτρέπονται ορισμένοι ειδικοί χαρακτήρες (@#! ~).
  • Ταυτοποίηση: Το πεδίο ταυτότητας εμφανίζεται μετά το ψευδώνυμο όταν κάποιος εκτελεί ένα WHOIS όπως αυτό:

    nickname! ident@hostname

  • GECOS: Αυτό το πεδίο περιέχει συνήθως το πραγματικό όνομα ενός χρήστη ή μια γενική περιγραφή του bot, αλλά μπορείτε να βάλετε ό, τι θέλετε εκεί.
  • Κανάλι: Συνήθως θέλετε το bot σας να είναι παρόν σε ένα ή περισσότερα κανάλια. Στα περισσότερα δίκτυα, αυτά έχουν πρόθεμα με "#", αλλά μπορεί να είναι κάτι άλλο.
Αναπτύξτε ένα IRC Bot Βήμα 5
Αναπτύξτε ένα IRC Bot Βήμα 5

Βήμα 2. Αρχικοποιήστε τη διαμόρφωση στο σενάριό σας

Ο πιο βασικός τρόπος για να γίνει αυτό είναι να ονομάσετε μερικές μεταβλητές σύμφωνα με τα παραπάνω ονόματα διαμόρφωσης. Μπορείτε επίσης να τα αποθηκεύσετε σε ένα αρχείο διαμόρφωσης και να τα αναλύσετε, αλλά προς το παρόν θα παραμείνουμε στα απόλυτα απαραίτητα.

Αναπτύξτε ένα IRC Bot Βήμα 6
Αναπτύξτε ένα IRC Bot Βήμα 6

Βήμα 3. Συνδεθείτε στο δίκτυο

Για να γίνει αυτό, θα πρέπει να ανοίξετε μια πρίζα στο διακομιστή στην καθορισμένη θύρα. Θα πρέπει επίσης να προσθέσετε κάποιο κωδικό χειρισμού σφαλμάτων σε αυτό το μέρος σε περίπτωση που η σύνδεση αποτύχει για οποιονδήποτε λόγο. Σε αυτήν την περίπτωση, η PHP μας παρέχει μερικές τακτοποιημένες λειτουργίες για την αποτελεσματική διαχείριση του σφάλματος.

Αναπτύξτε ένα IRC Bot Βήμα 7
Αναπτύξτε ένα IRC Bot Βήμα 7

Βήμα 4. Καταχωρήστε το bot σας

Αυτό σημαίνει ότι παρέχετε το ψευδώνυμό σας, το αναγνωριστικό και το GECOS στο διακομιστή, χωρίς εγγραφή στο NickServ. Για να το κάνετε αυτό, απλώς γράψτε τις εντολές NICK και USER στον διακομιστή, ακολουθούμενο από επιστροφή μεταφοράς και νέα γραμμή. Είναι επιτακτικό να το κάνετε ακριβώς όπως φαίνεται, γιατί έτσι καθορίζεται στο RFC1459, τις προδιαγραφές για το πρωτόκολλο IRC.

Σημειώστε ότι οι δύο μεσαίες παράμετροι (σε αυτήν την περίπτωση, * και 8) πρέπει να καθοριστούν, αλλά αγνοούνται από τον διακομιστή. Αυτοί οι δύο χρησιμοποιούνται μόνο μεταξύ συνδεδεμένων διακομιστών και όχι από πελάτη που συνδέεται άμεσα

Αναπτύξτε ένα IRC Bot Βήμα 8
Αναπτύξτε ένα IRC Bot Βήμα 8

Βήμα 5. Συνεχίστε να λαμβάνετε δεδομένα από την πρίζα χρησιμοποιώντας ένα βρόχο

Εάν δεν χρησιμοποιούσατε έναν βρόχο, το σενάριό σας θα τερματιζόταν αμέσως και το bot θα ήταν βασικά άχρηστο. Για να παραμείνετε συνδεδεμένοι, πρέπει να λάβετε δεδομένα από τον διακομιστή, να ελέγξετε για οποιαδήποτε είσοδο στη ροή που θέλετε και να απαντήσετε σε αυτό εάν ναι. Εδώ, συλλέγουμε δεδομένα χρησιμοποιώντας το socket_read () για να αρπάξουμε όλα τα διαθέσιμα δεδομένα για εμάς. Εάν υπάρχει, συνεχίζουμε να κάνουμε ό, τι υπάρχει στον βρόχο. Μπορεί να είναι χρήσιμο να εξάγετε επίσης τα ακατέργαστα δεδομένα στην κονσόλα, ώστε να μπορείτε να δείτε τι συμβαίνει από την πλευρά του bot.

Αναπτύξτε ένα IRC Bot Βήμα 9
Αναπτύξτε ένα IRC Bot Βήμα 9

Βήμα 6. Γράψτε έναν χειριστή ping

Αυτό είναι σημαντικό. Εάν δεν απαντήσετε έγκαιρα στα pings, ο διακομιστής θα σας αποσυνδέσει. Ας το φροντίσουμε πρώτα. Τα pings μοιάζουν με αυτό όταν αποστέλλονται από τον διακομιστή:

PING: rajaniemi.freenode.net

Το Ο διακομιστής δεν χρειάζεται να βάλει το όνομά του μετά το ':', μπορεί να παρέχει ό, τι θέλει. Πρέπει * να * επαναλάβετε ακριβώς αυτό που είπε ο διακομιστής, εκτός από τη χρήση PONG.

Δημιουργήστε ένα IRC Bot Βήμα 10
Δημιουργήστε ένα IRC Bot Βήμα 10

Βήμα 7. Εγγραφείτε στα κανάλια σας

Εντάξει, έχουμε ένα bot που συνδέεται στο δίκτυο και ανταποκρίνεται σε pings, αλλά διαφορετικά δεν κάνει τίποτα. Για να βλέπουν και να χρησιμοποιούν οι χρήστες το bot σας, θα πρέπει να είναι σε ένα κανάλι (διαφορετικά θα πρέπει να το πείτε για να απαντήσει σε ιδιωτικά μηνύματα).

  • Για να γίνει αυτό, θα ελέγξουμε για κωδικούς κατάστασης διακομιστή 376 ή 422. 376 σημαίνει ότι τελείωσε το MOTD (μήνυμα της ημέρας). 422 σημαίνει ότι δεν υπήρχε καμία MOTD για αποστολή. Αυτό το MOTD είναι απλώς κάτι που στέλνει ο διακομιστής όταν συνδέεστε, αλλά είναι ένας καλός δείκτης για το πότε μπορούμε να αρχίσουμε να συμμετέχουμε σε κανάλια.
  • Θα χρειαστεί να εκδώσετε μια εντολή JOIN. Αυτή η εντολή μπορεί να ακολουθηθεί από ένα ή περισσότερα κανάλια που χωρίζονται με κόμμα.
  • Παρατηρήστε ότι τα δεδομένα που στέλνει ο διακομιστής οριοθετούνται εύκολα με διαστήματα. Με αυτόν τον τρόπο μπορούμε να χωρίσουμε τα δεδομένα και να τα αναφέρουμε χρησιμοποιώντας ένα ευρετήριο πίνακα.
Αναπτύξτε ένα IRC Bot Βήμα 11
Αναπτύξτε ένα IRC Bot Βήμα 11

Βήμα 8. Απαντήστε στα μηνύματα καναλιού

Τώρα για το διασκεδαστικό κομμάτι. Το bot σας μπήκε στο κανάλι, οπότε τώρα μπορείτε να το χρησιμοποιήσετε για αυτό που θέλετε. Ας δημιουργήσουμε ένα παράδειγμα εντολής που ονομάζεται @moo.

  • Σημειώστε την αντιστάθμιση όπου ξεκινούν τα μηνύματα (αυτό ισχύει τόσο για τα κανάλια όσο και για τα ιδιωτικά μηνύματα). Είναι πάντα στο ίδιο μέρος.
  • Μπορείτε να χειριστείτε τις εντολές με κενά διαχωρίζοντας τα κομμάτια των δεδομένων ($ d). Αυτό είναι πέρα από το πεδίο εφαρμογής αυτού του άρθρου.
  • Εάν ο στόχος είναι ένα κανάλι (όπως #botters-test), τότε απαντάτε σε αυτό. Εάν πρόκειται για ιδιωτικό μήνυμα, αυτό το κομμάτι θα είναι το ψευδώνυμο του bot σας! Στη συνέχεια, πρέπει να απαντήσετε χρησιμοποιώντας το ψευδώνυμο του αποστολέα, όχι το δικό σας (αλλιώς θα μιλούσατε στον εαυτό σας, και αυτό είναι απλά ανόητο).
Αναπτύξτε ένα IRC Bot Βήμα 12
Αναπτύξτε ένα IRC Bot Βήμα 12

Βήμα 9. Επεκτείνετε το bot σας

Μπορείτε να προσθέσετε πολλές νέες δυνατότητες χρησιμοποιώντας την παραπάνω εφαρμογή. Υπάρχουν πολλές άλλες εντολές που μπορούν να εκδοθούν στο δίκτυο IRC, όπως διαχείριση λειτουργιών, κλωτσιές και απαγορεύσεις, ρύθμιση του θέματος, μεταξύ πολλών άλλων λειτουργιών.

Συμβουλές

  • Μπορείτε να παράγετε το αποτέλεσμα της εντολής "/me" με πρόθεμα τα μηνύματά σας ως εξής:

    • PRIVMSG #channel: / 001ACTION κείμενο εδώ / 001.
    • 001 σημαίνει χαρακτήρα ASCII 1 και θα ερμηνευθεί ως τέτοια σε μια συμβολοσειρά PHP με διπλή παράθεση. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε

      chr (1)

    • έξω από τη συμβολοσειρά.
  • Τα χρώματα μπορούν να παραχθούν σε ένα μήνυμα με πρόθεμα "\ 003" (κωδικός ASCII 3) ακολουθούμενο από έναν αριθμό για ένα χρώμα. 0 = λευκό, 1 = μαύρο, 2 = μπλε, 3 = πράσινο, 4 = κόκκινο […]. Δείτε τη σελίδα του mIRC για περισσότερα χρώματα.
  • Για λόγους ευγένειας, λάβετε τη συγκατάθεση των κατόχων καναλιού και των χειριστών IRC προτού θέσετε το bot σας online. Δεν έχουν όλα τα δίκτυα και τα κανάλια μια πολιτική καλωσορίσματος απέναντι στα bots, ακόμη και σε αυτά με καλή συμπεριφορά.
  • Ορισμένοι δαίμονες IRC υπερβαίνουν τις προδιαγραφές του πρωτοκόλλου και εφαρμόζουν άλλες δυνατότητες. Εάν το προετοιμάζετε για ένα συγκεκριμένο δίκτυο, μπορείτε σίγουρα να χρησιμοποιήσετε αυτές τις δυνατότητες εάν γνωρίζετε το πρωτόκολλό τους. Ωστόσο, εάν θέλετε το bot σας να αναπτυχθεί σε πολλά δίκτυα, προσπαθήστε να το διατηρήσετε σε αυτό που περιέχει το RFC.

Συνιστάται: