כיצד לפתח בוט IRC: 12 שלבים (עם תמונות)

תוכן עניינים:

כיצד לפתח בוט IRC: 12 שלבים (עם תמונות)
כיצד לפתח בוט IRC: 12 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לפתח בוט IRC: 12 שלבים (עם תמונות)

וִידֵאוֹ: כיצד לפתח בוט IRC: 12 שלבים (עם תמונות)
וִידֵאוֹ: אל תאבדו את הגישה לחשבון הפייסבוק שלכם ! 2024, אַפּרִיל
Anonim

אם היית ב- Internet Relay Chat (IRC), רוב הסיכויים שנתקלת בבוט בשלב כלשהו. בוטים הם תוכניות או סקריפטים עצמאיים המתחברים לרשת באותו אופן שבו אדם היה עושה זאת. ניתן לתכנת אותם להגיב לפקודות משתמש או אפילו לצ'אט. במדריך זה תוכל למצוא מהן האפשרויות שלך לבניית בוט IRC וכן כיצד לבנות אחד מאפס.

צעדים

שיטה 1 מתוך 2: הערכת אפשרויות

פיתוח שלב 1 של IRC Bot
פיתוח שלב 1 של IRC Bot

שלב 1. שקול להתקין סקריפט לקוח

לפעמים אתה רק רוצה לבצע משימה פשוטה ולא רוצה שתהיה תוכנית עצמאית. במקרה זה, תוכל לצרף סקריפט ללקוח IRC. זה די נפוץ לעשות עם mIRC, שיש לו מנוע סקריפטים חזק ומגוון רחב של סקריפטים זמינים. זוהי האפשרות הקלה ביותר ומומלצת בחום אם אין לך הרבה ניסיון או תכנות. עבור שאר מדריך זה, ההוראות דורשות ידע כלשהו בתכנות מחשבים.

פיתוח IRC Bot שלב 2
פיתוח IRC Bot שלב 2

שלב 2. שקול בסיס קוד קיים לבוט שלך

יש הרבה תוכנות קוד פתוח ותוכניות חינמיות שיכולות לעזור לך להקים בוט מותאם אישית משלך במהירות. דוגמה אחת כזו היא Eggdrop, הבוט הוותיק ביותר של IRC שעדיין מתוחזק.

פיתוח שלב 3 של IRC Bot
פיתוח שלב 3 של IRC Bot

שלב 3. שקול לכתוב בוט משלך

עבור משתמשי IRC ומפתחים מתקדמים שכבר יודעים את דרכם בשפת תכנות, זוהי אופציה מצוינת. אתה יכול להשתמש כמעט בכל שפה שאתה רוצה, כל עוד יש לה תמיכה בשקעים, אך פופולריות שבהן ניתן להשתמש כוללות Python, Lua, PHP, C ו- Perl. אם אינך יודע אף אחד מאלה אך אתה יודע שפה אחרת, אין זו בעיה. בדרך כלל תוכל למצוא דוגמאות באינטרנט בכל שפה שתרצה. עבור מאמר זה נדגים שימוש ב- PHP. כדי להשתמש ב- PHP, יהיה עליך להתקין PHP-CLI במחשב או בשרת שלך.

  • ניתן להוריד PHP מ- php.net
  • ניתן לבצע סקריפטים של PHP משורת הפקודה. למידע נוסף ועזרה בשימוש ב- PHP, עיין בדף הוראות PHP זה.

שיטה 2 מתוך 2: פיתוח בוט משלך

פיתוח שלב 4 של IRC Bot
פיתוח שלב 4 של IRC Bot

שלב 1. אסוף את פרטי החיבור

יהיה עליך לקבל את המידע הבא כדי להתחבר בהצלחה לרשת.

  • שרת: שם הדומיין של השרת המשמש לחיבור ל- IRC, כגון

    chat.freenode.net

  • נמל: ברוב המקרים, זהו 6667, אך אם אינך בטוח, בדוק את לקוח ה- IRC שלך או את אתר הרשת.
  • כינוי: הכינוי שהבוט שלך צריך להשתמש בו. זכור שבדרך כלל אסור להשתמש בדמויות מיוחדות (@#! ~).
  • מזהה: שדה הזהות מופיע לאחר הכינוי כאשר מישהו מבצע WHOIS כזה:

    כינוי! ident@שם מארח

  • GECOS: שדה זה מחזיק בדרך כלל את שמו האמיתי של המשתמש או תיאור כללי של הבוט, אך תוכל להכניס לשם מה שאתה רוצה.
  • עָרוּץ: בדרך כלל אתה רוצה שהבוט שלך יהיה נוכח בערוץ אחד או יותר. ברוב הרשתות, הקידומת שלהן היא '#', אך ייתכן שמדובר במשהו אחר.
לפתח שלב IRC Bot 5
לפתח שלב IRC Bot 5

שלב 2. אתחל את התצורה בתסריט שלך

הדרך הבסיסית ביותר לעשות זאת היא על ידי שמות מספר משתנים בהתאם לשמות התצורה למעלה. אתה יכול גם לאחסן אותם בקובץ תצורה ולנתח אותם, אבל כרגע אנחנו פשוט נשארים בדרישות המוחלטות.

פיתוח שלב IRC Bot 6
פיתוח שלב IRC Bot 6

שלב 3. התחבר לרשת

לשם כך, עליך לפתוח שקע לשרת ביציאה שצוינה. עליך להוסיף גם קוד טיפול בשגיאות בחלק זה למקרה שהחיבור נכשל מסיבה כלשהי. במקרה זה, PHP מספקת לנו כמה פונקציות מסודרות לטיפול בשגיאה ביעילות.

פיתוח IRC Bot שלב 7
פיתוח IRC Bot שלב 7

שלב 4. רשום את הבוט שלך

המשמעות היא אספקת הכינוי, הזהות ו- GECOS שלך לשרת, לא הרשמה ל- NickServ. לשם כך, פשוט כתוב את הפקודות NICK ו- USER לשרת, ואחריו החזרת כרכרה וקו חדש. חובה שתעשה זאת בדיוק כפי שמוצג, מכיוון שכך מצוין ב- RFC1459, המפרט לפרוטוקול IRC.

שים לב שיש לציין את שני הפרמטרים האמצעיים (במקרה זה, * ו- 8), אך השרת מתעלם מהם. שני אלה משמשים רק בין שרתים מקושרים, לא על ידי לקוח המחבר ישירות

פיתוח IRC Bot שלב 8
פיתוח IRC Bot שלב 8

שלב 5. המשך לאסוף נתונים מהשקע באמצעות לולאה

אם לא היית משתמש בלולאה, הסקריפט שלך יסתיים מייד והבוט יהיה חסר תועלת בעצם. כדי להישאר מחובר, עליך להביא נתונים מהשרת, לבדוק אם יש קלט בזרם שאתה רוצה ולהגיב עליו אם כן. כאן, אנו אוספים נתונים באמצעות socket_read () כדי לתפוס את כל הנתונים הזמינים עבורנו. אם יש, אנו ממשיכים לעשות כל מה שיש בלופ. זה עשוי להיות מועיל גם להוציא את הנתונים הגולמיים לקונסולה, כך שתוכל לראות מה קורה מבחינת הבוט.

פיתוח IRC Bot שלב 9
פיתוח IRC Bot שלב 9

שלב 6. כתוב מטפל פינג

זה חשוב. אם אינך מגיב לפינגים בזמן, השרת ינתק אותך. בואו נדאג לזה קודם. פינגים נראים כך כשנשלחים מהשרת:

פינג: rajaniemi.freenode.net

. השרת לא חייב לשים את שמו לאחר ה:: הוא יכול לספק מה שהוא רוצה. אתה * חייב * לחזור על מה שהשרת אמר, למעט שימוש ב- PONG.

פיתוח IRC Bot שלב 10
פיתוח IRC Bot שלב 10

שלב 7. הצטרף לערוצים שלך

אוקיי, אז יש לנו בוט שמתחבר לרשת ומגיב לפינגים, אבל אחרת לא עושה כלום. כדי שאנשים יוכלו לראות את הבוט שלך ולהשתמש בו, הוא צריך להיות בערוץ (אחרת תצטרך להגיד לו להגיב להודעות פרטיות).

  • לשם כך, נבדוק אם יש קודי סטטוס של השרת 376 או 422. 376 פירושו שה- MOTD (הודעת היום) הסתיים. 422 אומר שלא היה שום MOTD לשלוח. זה MOTD הוא רק משהו שהשרת שולח כשאתה מתחבר, אבל זה אינדיקטור טוב מתי נוכל להתחיל להצטרף לערוצים.
  • יהיה עליך להוציא פקודת JOIN. לפקודה זו ניתן לעקוב אחר ערוץ אחד או יותר המופרדים באמצעות פסיק.
  • שים לב שהנתונים שהשרת שולח מתוחמים בנוחות על ידי רווחים. כך נוכל לפצל את הנתונים ולהפנות אליהם באמצעות אינדקס מערך.
פיתוח שלב 11 של IRC Bot
פיתוח שלב 11 של IRC Bot

שלב 8. להגיב להודעות הערוץ

עכשיו לחלק המהנה. הבוט שלך הצטרף לערוץ, אז עכשיו אתה יכול להשתמש בו בשביל מה שרצית. בואו ניצור פקודה לדוגמה בשם @moo.

  • שים לב לקיזוז שבו מתחילות ההודעות (זה חל הן על הערוצים והן על ההודעות הפרטיות). זה תמיד נמצא באותו מקום.
  • אתה יכול להתמודד עם פקודות עם רווחים בהן על ידי שחבור הנתונים הנתחים בחזרה ($ d). זה מעבר להיקף מאמר זה.
  • אם היעד הוא ערוץ (כגון #botters-test), אתה עונה על כך. אם זו הודעה פרטית, הקטע הזה יהיה הכינוי של הבוט שלך! לאחר מכן עליך להשיב באמצעות כינוי השולח, לא שלך (אחרת היית מדבר לעצמך, וזה פשוט טיפשי).
פיתוח שלב 12 של IRC Bot
פיתוח שלב 12 של IRC Bot

שלב 9. הרחב את הבוט שלך

אתה יכול להוסיף הרבה תכונות חדשות באמצעות היישום לעיל. ישנן פקודות רבות אחרות שניתן להוציא לרשת ה- IRC, כגון ניהול אופציות, בעיטות וחסימה, הגדרת הנושא, בין תכונות רבות אחרות.

טיפים

  • אתה יכול לייצר את התוצאה של הפקודה "/me" על ידי קידומת ההודעות שלך כך:

    • PRIVMSG #channel: / 001ACTION טקסט כאן / 001.
    • 001 פירושו תו ASCII 1 והוא יתפרש ככזה במחרוזת PHP כפולה. לחלופין, אתה יכול להשתמש

      chr (1)

    • מחוץ למחרוזת.
  • ניתן לייצר צבעים בהודעה על ידי קידומת "\ 003" (קוד ASCII 3) ואחריו מספר עבור צבע. 0 = לבן, 1 = שחור, 2 = כחול, 3 = ירוק, 4 = אדום […]. עיין בדף mIRC לצבעים נוספים.
  • באדיבות, קבל הסכמה מבעלי ערוצים ומפעילי IRC לפני העלאת הרשת שלך לרשת. לא לכל הרשתות והערוצים יש מדיניות מבורכת כלפי בוטים, אפילו כאלה שמתנהגים היטב.
  • כמה שדים של IRC חורגים ממפרטי הפרוטוקול ומיישמים תכונות אחרות. אם אתה מכוון אותה לרשת ספציפית, אתה בהחלט יכול להשתמש בתכונות אלה אם אתה יודע על הפרוטוקול שלהן. עם זאת, אם אתה רוצה שהבוט שלך יפרס במספר רשתות, נסה לשמור אותו על מה שיש ב- RFC.

מוּמלָץ: