Πώς να αναπτύξετε ένα IRC Bot

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



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

  1. ένας Εξετάστε το ενδεχόμενο εγκατάστασης ενός σεναρίου πελάτη. Μερικές φορές θέλετε απλώς μια απλή εργασία και δεν θέλετε να είναι ένα ανεξάρτητο πρόγραμμα. Σε αυτήν την περίπτωση, μπορείτε να επισυνάψετε ένα σενάριο σε έναν πελάτη IRC. Αυτό είναι πολύ συνηθισμένο mIRC , η οποία διαθέτει μια ισχυρή μηχανή σεναρίων και μια μεγάλη ποικιλία διαθέσιμων σεναρίων. Αυτή είναι η ευκολότερη επιλογή και συνιστάται ιδιαίτερα εάν δεν έχετε πολύ ή καμία εμπειρία προγραμματισμού. Για το υπόλοιπο αυτού του οδηγού, οι οδηγίες απαιτούν κάποιες γνώσεις σχετικά με τον προγραμματισμό υπολογιστών.
  2. 2 Εξετάστε μια προϋπάρχουσα βάση κώδικα για το bot σας. Υπάρχουν πολλά ανοιχτά προγράμματα και δωρεάν προγράμματα που μπορούν να σας βοηθήσουν να ρυθμίσετε γρήγορα το δικό σας προσαρμοσμένο bot. Ένα τέτοιο παράδειγμα είναι Αυγό , το παλαιότερο bot IRC διατηρείται ακόμη.
  3. 3 Σκεφτείτε να γράψετε το δικό σας bot. Για προχωρημένους χρήστες IRC και προγραμματιστές που γνωρίζουν ήδη τη γλώσσα προγραμματισμού, αυτή είναι μια εξαιρετική επιλογή. Μπορείτε να χρησιμοποιήσετε σχεδόν οποιαδήποτε γλώσσα θέλετε, αρκεί να διαθέτει υποστήριξη υποδοχής, αλλά οι δημοφιλείς γλώσσες περιλαμβάνουν Python, Lua, PHP, C και Perl. Εάν δεν γνωρίζετε κανένα από αυτά, αλλά ξέρετε άλλη γλώσσα, αυτό δεν είναι πρόβλημα. Συνήθως μπορείτε να βρείτε παραδείγματα στον ιστό σε οποιαδήποτε γλώσσα θέλετε. Για αυτό το άρθρο, θα δείξουμε τη χρήση PHP. Για να χρησιμοποιήσετε την PHP, θα πρέπει να έχετε εγκαταστήσει το PHP-CLI στον υπολογιστή ή στο διακομιστή σας.
    • Μπορείτε να κατεβάσετε PHP από php.net
    • Τα σενάρια PHP μπορούν να εκτελεστούν από τη γραμμή εντολών. Για πρόσθετες πληροφορίες και βοήθεια σχετικά με τη χρήση της PHP, δείτε αυτήν τη σελίδα εγχειριδίου PHP .
    Διαφήμιση

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

  1. ένας Συγκεντρώστε τις λεπτομέρειες σύνδεσης. Για να συνδεθείτε με επιτυχία στο δίκτυο, θα χρειαστεί να λάβετε τις ακόλουθες πληροφορίες.
    • Υπηρέτης : Το όνομα τομέα του διακομιστή που χρησιμοποιήθηκε για σύνδεση στο IRC, όπως chat.freenode.net
    • Λιμάνι : Στις περισσότερες περιπτώσεις, αυτό είναι το 6667, αλλά αν δεν είστε σίγουροι, ελέγξτε τον δικό σας πελάτη IRC ή τον ιστότοπο του δικτύου.
    • Παρατσούκλι : Το ψευδώνυμο που πρέπει να χρησιμοποιεί το bot σας. Λάβετε υπόψη ότι ορισμένοι ειδικοί χαρακτήρες συνήθως δεν επιτρέπονται (@ #! ~).
    • Ταυτ : Το πεδίο ident εμφανίζεται μετά το ψευδώνυμο όταν κάποιος εκτελεί ένα WHOIS όπως αυτό: nickname!ident@hostname
    • ΓΕΚΟΣ : Αυτό το πεδίο συνήθως περιέχει το πραγματικό όνομα του χρήστη ή μια γενική περιγραφή του bot, αλλά μπορείτε να βάλετε ό, τι θέλετε εκεί.
    • Κανάλι : Συνήθως θέλετε το bot σας να είναι παρόν σε ένα ή περισσότερα κανάλια. Στα περισσότερα δίκτυα, αυτά είναι προθέματα με '#', αλλά μπορεί να είναι κάτι άλλο.
  2. 2 Αρχικοποιήστε τη διαμόρφωση στο σενάριό σας. Ο πιο βασικός τρόπος για να γίνει αυτό είναι με την ονομασία μερικών μεταβλητών σύμφωνα με τα παραπάνω ονόματα διαμόρφωσης. Θα μπορούσατε επίσης να τα αποθηκεύσετε σε ένα αρχείο ρυθμίσεων και να τα αναλύσετε, αλλά προς το παρόν θα μείνουμε απλώς στα απόλυτα απαραίτητα.
  3. 3 Συνδεθείτε στο δίκτυο. Για να το κάνετε αυτό, θα πρέπει να ανοίξετε μια υποδοχή στον διακομιστή στην καθορισμένη θύρα. Θα πρέπει επίσης να προσθέσετε κάποιο κωδικό χειρισμού σφαλμάτων σε αυτό το μέρος σε περίπτωση που η σύνδεση αποτύχει για οποιονδήποτε λόγο. Σε αυτήν την περίπτωση, η PHP μας παρέχει μερικές τακτοποιημένες λειτουργίες για τον αποτελεσματικό χειρισμό του σφάλματος.
  4. 4 Καταχωρήστε το bot σας. Αυτό σημαίνει ότι παρέχετε το ψευδώνυμό σας, το αναγνωριστικό και το GECOS στο διακομιστή, δεν εγγραφείτε στο NickServ. Για να το κάνετε αυτό, απλώς γράψτε τις εντολές NICK και USER στον διακομιστή, ακολουθούμενη από επιστροφή μεταφοράς και νέα γραμμή. Είναι επιτακτική ανάγκη να το κάνετε ακριβώς όπως φαίνεται, γιατί έτσι καθορίζεται στο RFC1459, την προδιαγραφή για το πρωτόκολλο IRC.
    • Σημειώστε ότι οι μεσαίες δύο παράμετροι (σε ​​αυτήν την περίπτωση, * και 8) πρέπει να καθοριστούν, αλλά αγνοούνται από τον διακομιστή. Αυτά τα δύο χρησιμοποιούνται μόνο μεταξύ συνδεδεμένων διακομιστών και όχι από έναν άμεσα συνδεδεμένο πελάτη.
  5. 5 Συνεχίστε τη λήψη δεδομένων από την υποδοχή χρησιμοποιώντας έναν βρόχο. Εάν δεν χρησιμοποιούσατε βρόχο, το σενάριό σας θα τερματίστηκε αμέσως και το bot θα ήταν βασικά άχρηστο. Για να παραμείνετε συνδεδεμένοι, πρέπει να λάβετε δεδομένα από το διακομιστή, να ελέγξετε για οποιαδήποτε είσοδο στη ροή που θέλετε και να απαντήσετε σε αυτό εάν ναι. Εδώ, συλλέγουμε δεδομένα χρησιμοποιώντας το socket_read () για να αρπάξουμε τυχόν διαθέσιμα δεδομένα για εμάς. Εάν υπάρχει, συνεχίζουμε να κάνουμε ό, τι υπάρχει στο βρόχο. Ίσως είναι χρήσιμο να εξάγετε επίσης τα μη επεξεργασμένα δεδομένα στην κονσόλα, ώστε να μπορείτε να δείτε τι συμβαίνει από την προοπτική του bot
  6. 6 Γράψτε έναν χειριστή ping. Αυτό είναι σημαντικό. Εάν δεν απαντήσετε εγκαίρως στο ping, ο διακομιστής θα σας αποσυνδέσει. Ας το φροντίσουμε πρώτα. Τα Pings μοιάζουν με αυτό όταν αποστέλλονται από τον διακομιστή: PING :rajaniemi.freenode.net. Ο διακομιστής δεν χρειάζεται να βάλει το όνομά του μετά το ':', μπορεί να παρέχει ό, τι θέλει. Πρέπει * να * επαναλάβετε ακριβώς αυτό που είπε ο διακομιστής, εκτός από τη χρήση PONG.
  7. 7 Εγγραφείτε στα κανάλια σας. Εντάξει, οπότε έχουμε ένα bot που συνδέεται στο δίκτυο και ανταποκρίνεται σε ping, αλλά διαφορετικά δεν κάνει τίποτα. Για να βλέπουν και να χρησιμοποιούν οι χρήστες το bot σας, θα πρέπει να βρίσκεται σε ένα κανάλι (διαφορετικά θα πρέπει να το πείτε να απαντά σε ιδιωτικά μηνύματα).
    • Για να γίνει αυτό, θα ελέγξουμε για τους κωδικούς κατάστασης διακομιστή 376 ή 422. 376 σημαίνει ότι το MOTD (μήνυμα της ημέρας) έχει ολοκληρωθεί. 422 σημαίνει ότι δεν υπήρχε κανένα MOTD για αποστολή. Αυτό το MOTD είναι κάτι που στέλνει ο διακομιστής όταν συνδέεστε, αλλά είναι μια καλή ένδειξη για το πότε μπορούμε να ξεκινήσουμε να συμμετέχουμε σε κανάλια.
    • Θα πρέπει να εκδώσετε μια εντολή JOIN. Αυτή η εντολή μπορεί να ακολουθηθεί από ένα ή περισσότερα κανάλια διαχωρισμένα με κόμμα.
    • Παρατηρήστε ότι τα δεδομένα που στέλνει ο διακομιστής οριοθετούνται εύκολα από κενά. Με αυτόν τον τρόπο μπορούμε να χωρίσουμε τα δεδομένα και να τα αναφέρουμε χρησιμοποιώντας ένα ευρετήριο πίνακα.
  8. 8 Απαντήστε σε μηνύματα καναλιού. Τώρα για το διασκεδαστικό μέρος. Το bot σας έγινε μέλος του καναλιού, οπότε τώρα μπορείτε να το χρησιμοποιήσετε για ό, τι θέλετε. Ας δημιουργήσουμε ένα παράδειγμα εντολής που ονομάζεται @moo.
    • Σημειώστε την μετατόπιση από την οποία ξεκινούν τα μηνύματα (αυτό ισχύει τόσο για τα κανάλια όσο και για τα ιδιωτικά μηνύματα). Είναι πάντα στο ίδιο μέρος.
    • Μπορείτε να χειριστείτε εντολές με κενά σε αυτά, συνδέοντας τα κομμένα δεδομένα ξανά ($ d). Αυτό είναι πέρα ​​από το πεδίο εφαρμογής αυτού του άρθρου.
    • Εάν ο στόχος είναι ένα κανάλι (όπως # botters-test), τότε απαντάτε σε αυτό. Εάν είναι ένα ιδιωτικό μήνυμα, αυτό το bit θα είναι το ψευδώνυμο του bot σας! Στη συνέχεια, πρέπει να απαντήσετε χρησιμοποιώντας το ψευδώνυμο του αποστολέα, όχι το δικό σας (διαφορετικά θα μιλούσατε στον εαυτό σας και αυτό είναι απλώς ανόητο).
  9. 9 Επεκτείνετε το bot σας. Μπορείτε να προσθέσετε πολλές νέες δυνατότητες χρησιμοποιώντας την παραπάνω εφαρμογή. Υπάρχουν πολλές άλλες εντολές που μπορούν να εκδοθούν στο δίκτυο IRC, όπως διαχείριση ops, κλοτσιές και απαγόρευση, ρύθμιση του θέματος, μεταξύ πολλών άλλων λειτουργιών. Διαφήμιση

Q&A κοινότητας

Αναζήτηση Προσθήκη νέας ερώτησης
  • Ερώτηση Αφού τα προσθέσω στο σημειωματάριο +, πού μπορώ να προσθέσω αυτούς τους κωδικούς; πετάνε 8 Τοποθετήστε τα σε έναν διακομιστή ιστού (όπως το Apache) που υποστηρίζει PHP. Μπορείτε να εγκαταστήσετε το XXAMP στον τοπικό υπολογιστή σας ή να τους φιλοξενήσετε σε έναν διακομιστή ιστού anther.
Κάντε μια ερώτηση αριστερά 200 χαρακτήρες Συμπεριλάβετε τη διεύθυνση email σας για να λάβετε ένα μήνυμα όταν απαντηθεί αυτή η ερώτηση. υποβάλλουν
Διαφήμιση

Συμβουλές

  • Μπορείτε να δημιουργήσετε το αποτέλεσμα της εντολής '/ me' προθέτοντας τα μηνύματά σας ως εξής:
    • PRIVMSG # κανάλι: 001ΔΡΑΣΗ κείμενο εδώ 001 .
    • 001 σημαίνει χαρακτήρας 1 ASCII και θα ερμηνευθεί ως έχει σε μια συμβολοσειρά PHP με διπλή αναφορά. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το chr(1) έξω από τη χορδή.
  • Τα χρώματα μπορούν να παραχθούν σε ένα μήνυμα προθέματος ' 003' (κωδικός ASCII 3) ακολουθούμενο από έναν αριθμό για ένα χρώμα. 0 = λευκό, 1 = μαύρο, 2 = μπλε, 3 = πράσινο, 4 = κόκκινο [...]. Βλέπω mIRC σελίδα για περισσότερα χρώματα.
  • Για λόγους ευγένειας, λάβετε τη συγκατάθεση των κατόχων καναλιών και των χειριστών IRC πριν συνδέσετε το bot σας στο διαδίκτυο. Δεν έχουν όλα τα δίκτυα και τα κανάλια μια πολιτική καλωσορίσματος για bots, ακόμη και καλά συμπεριφερόμενα.
  • Ορισμένοι δαίμονες IRC υπερβαίνουν τις προδιαγραφές του πρωτοκόλλου και εφαρμόζουν άλλες δυνατότητες. Εάν το προετοιμάζετε για ένα συγκεκριμένο δίκτυο, μπορείτε σίγουρα να χρησιμοποιήσετε αυτές τις δυνατότητες εάν γνωρίζετε για το πρωτόκολλό τους. Εάν θέλετε το bot σας να αναπτυχθεί σε πολλά δίκτυα, ωστόσο, προσπαθήστε να το κρατήσετε σε αυτό που υπάρχει στο RFC.

Διαφήμιση Υποβολή συμβουλής Όλες οι υποβολές συμβουλών εξετάζονται προσεκτικά πριν δημοσιευθούν Ευχαριστούμε που υποβάλατε μια συμβουλή για έλεγχο!

Δημοφιλή Θέματα

Δείτε πώς μπορείτε να μεταδώσετε το μουσικό επεισόδιο της σεζόν 4 του Riverdale, 'Hedwig and the Angry Inch', online χωρίς καλώδιο.

Δείτε πώς μπορείτε να παρακολουθήσετε μια ροή της σεζόν 2 του Brilliant Friend μου στο διαδίκτυο χωρίς καλώδιο. Πρεμιέρα κάνει τη Δευτέρα 16 Μαρτίου στις 10 μ.μ. ET/PT στο HBO.

Ο Νόβακ Τζόκοβιτς έχει ενισχύσει τη θέση του στην παγκόσμια Νο 1 κατάταξη μετά την κατάκτηση των τίτλων του Australian Open, του Roland Garros και του Wimbledon φέτος.

Πώς να σχεδιάσετε ένα ταξίδι με σακίδιο. Με λίγη προσπάθεια, τα ταξίδια με σακίδιο μπορεί να είναι σοβαρά διασκεδαστικά. Ένα καλά σχεδιασμένο ταξίδι θα σας επιτρέψει να κατασκηνώσετε σε όμορφα μέρη χωρίς να χρειάζεται να αντιμετωπίσετε περιττά πλήθη που σχετίζονται με κάμπινγκ και RV ...