כיצד לפתח בוט IRC?

אם היית בצ'אט ממסר באינטרנט (IRC)
אם היית בצ'אט ממסר באינטרנט (IRC), רוב הסיכויים שנתקלת בבוט בשלב כלשהו.

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

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

  1. 1
    שקול להתקין סקריפט לקוח. לפעמים אתה פשוט רוצה לבצע משימה פשוטה ולא רוצה שזו תהיה תוכנית עצמאית. במקרה כזה, תוכל לצרף סקריפט ללקוח IRC. זה די מקובל לעשות עם mIRC, שיש לו מנוע סקריפטים חזק ומגוון רחב של סקריפטים זמינים. זו האפשרות הקלה ביותר ומומלצת מאוד אם אין לך הרבה או כל ניסיון בתכנות. בהמשך המדריך הזה, ההוראות דורשות ידע מסוים בתכנות מחשבים.
  2. 2
    שקול בסיס קוד קיים עבור הבוט שלך. ישנן מספר רב של תוכנות קוד פתוח ותוכניות חינמיות שיכולות לעזור לך להגדיר במהירות את הבוט המותאם אישית שלך. דוגמה כזו היא Eggdrop, הבוט הבכיר ביותר של IRC שעדיין מתוחזק.
  3. 3
    שקול לכתוב בוט משלך. עבור משתמשי IRC מתקדמים ומפתחים שכבר יודעים את דרכם בשפת תכנות, זו אפשרות נהדרת. אתה יכול להשתמש כמעט בכל שפה שתרצה כל עוד יש לה תמיכה בשקעים, אך שפות פופולריות לשימוש כוללות Python, Lua, PHP, C ו- Perl. אם אינך מכיר אף אחד מאלה אך ידוע לך שפה אחרת, אין זו בעיה. בדרך כלל תוכלו למצוא דוגמאות באינטרנט בכל שפה שתרצו. למאמר זה נדגים שימוש ב- PHP. כדי להשתמש ב- PHP, יהיה עליך להתקין PHP-CLI במחשב או בשרת שלך.
    • ניתן להוריד PHP מ- php.net
    • ניתן לבצע סקריפטים PHP משורת הפקודה. לקבלת מידע נוסף ועזרה בשימוש ב- PHP, עיין במדריך זה של PHP.
הבוט הבכיר ביותר של IRC שעדיין מתוחזק
דוגמה כזו היא Eggdrop, הבוט הבכיר ביותר של IRC שעדיין מתוחזק.

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

  1. 1
    אסוף את פרטי החיבור. יהיה עליך לקבל את המידע הבא כדי להתחבר בהצלחה לרשת.
    • שרת: שם התחום של השרת המשמש להתחברות ל- IRC, כגוןchat.freenode.net
    • יציאה: ברוב המקרים מדובר על 6667, אך אם אינכם בטוחים, בדקו לקוח IRC משלכם או באתר הרשת.
    • כינוי: הכינוי שהבוט שלך צריך להשתמש בו. זכור כי בדרך כלל אסור להשתמש בתווים מיוחדים (@ #! ~).
    • זהה: שדה הזהות מופיע לאחר הכינוי כאשר מישהו מבצע WHOIS כזה:nickname!ident@hostname
    • GECOS: שדה זה מכיל בדרך כלל את השם האמיתי של המשתמש או תיאור כללי של הבוט, אך אתה יכול להכניס לשם כל מה שאתה רוצה.
    • ערוץ: בדרך כלל אתה רוצה שהבוט שלך יהיה נוכח בערוץ אחד או יותר. ברוב הרשתות קידומות אלה עם '#', אך יכול להיות שזה משהו אחר.
  2. 2
    אתחל את התצורה בסקריפט שלך. הדרך הבסיסית ביותר לעשות זאת היא על ידי שמות של כמה משתנים על פי שמות התצורה לעיל. אתה יכול גם לאחסן אותם בקובץ תצורה ולנתח אותם, אך נכון לעכשיו פשוט נצמד לצרכים המוחלטים.
  3. 3
    התחבר לרשת. לשם כך יהיה עליך לפתוח שקע לשרת ביציאה שצוינה. עליך להוסיף בחלק זה קוד טיפול בשגיאות במקרה שהחיבור נכשל מכל סיבה שהיא. במקרה זה, PHP מספקת לנו כמה פונקציות מסודרות לטיפול ביעילות בשגיאה.
  4. 4
    רשום את הבוט שלך. פירוש הדבר לספק את הכינוי, הזהות וה- GECOS שלך לשרת, ולא להירשם ב- NickServ. לשם כך, פשוט כתוב את הפקודות NICK ו- USER לשרת, ואחריו החזרת כרכרה וקו חדש. חובה שתעשה זאת בדיוק כפי שמוצג, מכיוון שכך הוא מוגדר ב- RFC1459, המפרט לפרוטוקול IRC.
    • שים לב שיש לציין את שני הפרמטרים האמצעיים (במקרה זה, * ו- 8), אך השרת מתעלם מהם. שני אלה משמשים רק בין שרתים מקושרים, ולא על ידי לקוח המחבר ישירות.
  5. 5
    המשך להביא נתונים מהשקע באמצעות לולאה. אם לא היית משתמש בלולאה, הסקריפט שלך יסתיים מיד והבוט היה חסר תועלת בעצם. על מנת להישאר מחובר, עליך להביא נתונים מהשרת, לבדוק אם קיימים קלט בזרם הרצוי, ולהגיב אליו אם כן. כאן אנו תופסים נתונים באמצעות socket_read () כדי לתפוס נתונים זמינים עבורנו. אם יש, אנו ממשיכים לעשות כל מה שיש בלולאה. זה עשוי להיות מועיל גם להעביר את הנתונים הגולמיים למסוף כדי שתוכל לראות מה קורה מנקודת מבטו של הבוט.
    קבל הסכמה של בעלי ערוצים ומפעילי IRC לפני שתביא את הבוט שלך לרשת
    לצורך אדיבות, קבל הסכמה של בעלי ערוצים ומפעילי IRC לפני שתביא את הבוט שלך לרשת.
  6. 6
    כתוב מטפל פינג. זה חשוב. אם אתה לא מגיב לפינגים בזמן, השרת ינתק אותך. בואו נדאג לזה קודם. Pings להיראות כך כאשר נשלח מהשרת: PING:rajaniemi.freenode.net. השרת לא צריך לשים את שמו אחרי ה- ':', הוא יכול לספק כל מה שהוא רוצה. אתה * חייב * לחזור בדיוק על מה שהשרת אמר, למעט שימוש ב- PONG.
  7. 7
    הצטרף לערוצים שלך. אוקיי, אז יש לנו בוט שמתחבר לרשת ומגיב לפינגים, אבל אחרת לא עושה כלום. כדי שאנשים יראו וישתמשו בבוט שלך, הוא צריך להיות בערוץ (אחרת תצטרך להגיד לו להגיב להודעות פרטיות).
    • לשם כך, נבדוק אם קודי מצב השרת 376 או 422. 376 פירושו שה- MOTD (הודעת היום) הסתיים. 422 פירושו שלא היה שום MOTD לשלוח. MOTD זה רק משהו שהשרת שולח כשאתה מתחבר, אבל זה אינדיקטור טוב מתי נוכל להתחיל להצטרף לערוצים.
    • יהיה עליך להוציא פקודת JOIN. ניתן לפקודה זו על ידי ערוץ אחד או יותר המופרדים בפסיק.
    • שימו לב שהנתונים שהשרת שולח מתוחמים בנוחות על ידי רווחים. בדרך זו אנו יכולים לפצל את הנתונים ולהפנות אותם באמצעות אינדקס מערך.
  8. 8
    להגיב להודעות ערוץ. עכשיו לחלק הכיף. הבוט שלך הצטרף לערוץ, אז עכשיו אתה יכול להשתמש בו למה שרצית. בואו ניצור פקודה לדוגמא בשם @moo.
    • שימו לב לקיזוז שבו מתחילות ההודעות (זה חל גם על הערוצים וגם על ההודעות הפרטיות). זה תמיד באותו מקום.
    • אתה יכול לטפל בפקודות עם רווחים בתוכם על ידי שחבור הנתונים הנתחים יחד ($ d). זה מעבר לתחום המאמר הזה.
    • אם היעד הוא ערוץ (כגון # botters-test), אתה עונה על כך. אם זו הודעה פרטית, הסיבית הזו תהיה הכינוי של הבוט שלך! לאחר מכן עליך להשיב באמצעות כינוי השולח, לא שלך (אחרת היית מדבר לעצמך, וזה פשוט מטופש).
  9. 9
    הרחב את הבוט שלך. באפשרותך להוסיף תכונות חדשות רבות באמצעות היישום לעיל. ישנן פקודות רבות אחרות שניתן להוציא לרשת ה- IRC, כגון ניהול אופ, בעיטה ואיסור, הגדרת הנושא, בין תכונות רבות אחרות.

טיפים

  • אתה יכול לייצר את התוצאה של הפקודה "/ me" על ידי קידומת ההודעות שלך כך:
    • PRIVMSG # channel: \ 001 טקסט ACTION כאן \ 001.
    • \ 001 פירושו תו 1 של ASCII ויתפרש ככזה במחרוזת PHP עם ציטוט כפול. לחלופין, אתה יכול להשתמש chr(1)מחוץ למחרוזת.
    במדריך זה תוכלו למצוא מה האפשרויות שלכם לבניית בוט IRC וכן כיצד לבנות אחד מאפס
    במדריך זה תוכלו למצוא מה האפשרויות שלכם לבניית בוט IRC וכן כיצד לבנות אחד מאפס.
  • ניתן להפיק צבעים בהודעה על ידי קידומת "\ 003" (קוד ASCII 3) ואחריו מספר לצבע. 0 = לבן, 1 = שחור, 2 = כחול, 3 = ירוק, 4 = אדום [...]. ראה עמוד של mIRC לקבלת צבעים נוספים.
  • לצורך אדיבות, קבל הסכמה של בעלי ערוצים ומפעילי IRC לפני שתביא את הבוט שלך לרשת. לא בכל הרשתות והערוצים יש מדיניות מבורכת כלפי בוטים, אפילו לא מתנהגים היטב.
  • חלק מהדמונים של IRC חורגים ממפרט הפרוטוקול ומיישמים תכונות אחרות. אם אתה מכוון אותו לרשת ספציפית, אתה בהחלט יכול להשתמש בתכונות אלה אם אתה יודע על הפרוטוקול שלהם. אם ברצונך לפרוס את הבוט שלך בכמה רשתות, נסה לשמור אותו על מה שיש ב- RFC.

שאלות ותשובות

  • אחרי שאני מוסיף אותם בפנקס +, היכן אני מוסיף את הקודים האלה?
    שים אותם על שרת אינטרנט (כגון Apache) התומך ב- PHP. אתה יכול להתקין את XXAMP במחשב המקומי שלך, או לארח אותם בשרת אינטרנט אחר.

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail