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

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

דוגמה כזו היא Eggdrop, הבוט הבכיר ביותר של IRC שעדיין מתוחזק.
שיטה 2 מתוך 2: פיתוח בוט משלך
- 1אסוף את פרטי החיבור. יהיה עליך לקבל את המידע הבא כדי להתחבר בהצלחה לרשת.
- שרת: שם התחום של השרת המשמש להתחברות ל- IRC, כגון
chat.freenode.net
- יציאה: ברוב המקרים מדובר על 6667, אך אם אינכם בטוחים, בדקו לקוח IRC משלכם או באתר הרשת.
- כינוי: הכינוי שהבוט שלך צריך להשתמש בו. זכור כי בדרך כלל אסור להשתמש בתווים מיוחדים (@ #! ~).
- זהה: שדה הזהות מופיע לאחר הכינוי כאשר מישהו מבצע WHOIS כזה:
nickname!ident@hostname
- GECOS: שדה זה מכיל בדרך כלל את השם האמיתי של המשתמש או תיאור כללי של הבוט, אך אתה יכול להכניס לשם כל מה שאתה רוצה.
- ערוץ: בדרך כלל אתה רוצה שהבוט שלך יהיה נוכח בערוץ אחד או יותר. ברוב הרשתות קידומות אלה עם '#', אך יכול להיות שזה משהו אחר.
- שרת: שם התחום של השרת המשמש להתחברות ל- IRC, כגון
- 2אתחל את התצורה בסקריפט שלך. הדרך הבסיסית ביותר לעשות זאת היא על ידי שמות של כמה משתנים על פי שמות התצורה לעיל. אתה יכול גם לאחסן אותם בקובץ תצורה ולנתח אותם, אך נכון לעכשיו פשוט נצמד לצרכים המוחלטים.
- 3התחבר לרשת. לשם כך יהיה עליך לפתוח שקע לשרת ביציאה שצוינה. עליך להוסיף בחלק זה קוד טיפול בשגיאות במקרה שהחיבור נכשל מכל סיבה שהיא. במקרה זה, PHP מספקת לנו כמה פונקציות מסודרות לטיפול ביעילות בשגיאה.
- 4רשום את הבוט שלך. פירוש הדבר לספק את הכינוי, הזהות וה- GECOS שלך לשרת, ולא להירשם ב- NickServ. לשם כך, פשוט כתוב את הפקודות NICK ו- USER לשרת, ואחריו החזרת כרכרה וקו חדש. חובה שתעשה זאת בדיוק כפי שמוצג, מכיוון שכך הוא מוגדר ב- RFC1459, המפרט לפרוטוקול IRC.
- שים לב שיש לציין את שני הפרמטרים האמצעיים (במקרה זה, * ו- 8), אך השרת מתעלם מהם. שני אלה משמשים רק בין שרתים מקושרים, ולא על ידי לקוח המחבר ישירות.
- 5המשך להביא נתונים מהשקע באמצעות לולאה. אם לא היית משתמש בלולאה, הסקריפט שלך יסתיים מיד והבוט היה חסר תועלת בעצם. על מנת להישאר מחובר, עליך להביא נתונים מהשרת, לבדוק אם קיימים קלט בזרם הרצוי, ולהגיב אליו אם כן. כאן אנו תופסים נתונים באמצעות socket_read () כדי לתפוס נתונים זמינים עבורנו. אם יש, אנו ממשיכים לעשות כל מה שיש בלולאה. זה עשוי להיות מועיל גם להעביר את הנתונים הגולמיים למסוף כדי שתוכל לראות מה קורה מנקודת מבטו של הבוט.לצורך אדיבות, קבל הסכמה של בעלי ערוצים ומפעילי IRC לפני שתביא את הבוט שלך לרשת.
- 6כתוב מטפל פינג. זה חשוב. אם אתה לא מגיב לפינגים בזמן, השרת ינתק אותך. בואו נדאג לזה קודם. Pings להיראות כך כאשר נשלח מהשרת:
PING:rajaniemi.freenode.net
. השרת לא צריך לשים את שמו אחרי ה- ':', הוא יכול לספק כל מה שהוא רוצה. אתה * חייב * לחזור בדיוק על מה שהשרת אמר, למעט שימוש ב- PONG. - 7הצטרף לערוצים שלך. אוקיי, אז יש לנו בוט שמתחבר לרשת ומגיב לפינגים, אבל אחרת לא עושה כלום. כדי שאנשים יראו וישתמשו בבוט שלך, הוא צריך להיות בערוץ (אחרת תצטרך להגיד לו להגיב להודעות פרטיות).
- לשם כך, נבדוק אם קודי מצב השרת 376 או 422. 376 פירושו שה- MOTD (הודעת היום) הסתיים. 422 פירושו שלא היה שום MOTD לשלוח. MOTD זה רק משהו שהשרת שולח כשאתה מתחבר, אבל זה אינדיקטור טוב מתי נוכל להתחיל להצטרף לערוצים.
- יהיה עליך להוציא פקודת JOIN. ניתן לפקודה זו על ידי ערוץ אחד או יותר המופרדים בפסיק.
- שימו לב שהנתונים שהשרת שולח מתוחמים בנוחות על ידי רווחים. בדרך זו אנו יכולים לפצל את הנתונים ולהפנות אותם באמצעות אינדקס מערך.
- 8להגיב להודעות ערוץ. עכשיו לחלק הכיף. הבוט שלך הצטרף לערוץ, אז עכשיו אתה יכול להשתמש בו למה שרצית. בואו ניצור פקודה לדוגמא בשם @moo.
- שימו לב לקיזוז שבו מתחילות ההודעות (זה חל גם על הערוצים וגם על ההודעות הפרטיות). זה תמיד באותו מקום.
- אתה יכול לטפל בפקודות עם רווחים בתוכם על ידי שחבור הנתונים הנתחים יחד ($ d). זה מעבר לתחום המאמר הזה.
- אם היעד הוא ערוץ (כגון # botters-test), אתה עונה על כך. אם זו הודעה פרטית, הסיבית הזו תהיה הכינוי של הבוט שלך! לאחר מכן עליך להשיב באמצעות כינוי השולח, לא שלך (אחרת היית מדבר לעצמך, וזה פשוט מטופש).
- 9הרחב את הבוט שלך. באפשרותך להוסיף תכונות חדשות רבות באמצעות היישום לעיל. ישנן פקודות רבות אחרות שניתן להוציא לרשת ה- IRC, כגון ניהול אופ, בעיטה ואיסור, הגדרת הנושא, בין תכונות רבות אחרות.
- אתה יכול לייצר את התוצאה של הפקודה "/ me" על ידי קידומת ההודעות שלך כך:
- PRIVMSG # channel: \ 001 טקסט ACTION כאן \ 001.
- \ 001 פירושו תו 1 של ASCII ויתפרש ככזה במחרוזת PHP עם ציטוט כפול. לחלופין, אתה יכול להשתמש
chr(1)
מחוץ למחרוזת.
במדריך זה תוכלו למצוא מה האפשרויות שלכם לבניית בוט IRC וכן כיצד לבנות אחד מאפס. - ניתן להפיק צבעים בהודעה על ידי קידומת "\ 003" (קוד ASCII 3) ואחריו מספר לצבע. 0 = לבן, 1 = שחור, 2 = כחול, 3 = ירוק, 4 = אדום [...]. ראה עמוד של mIRC לקבלת צבעים נוספים.
- לצורך אדיבות, קבל הסכמה של בעלי ערוצים ומפעילי IRC לפני שתביא את הבוט שלך לרשת. לא בכל הרשתות והערוצים יש מדיניות מבורכת כלפי בוטים, אפילו לא מתנהגים היטב.
- חלק מהדמונים של IRC חורגים ממפרט הפרוטוקול ומיישמים תכונות אחרות. אם אתה מכוון אותו לרשת ספציפית, אתה בהחלט יכול להשתמש בתכונות אלה אם אתה יודע על הפרוטוקול שלהם. אם ברצונך לפרוס את הבוט שלך בכמה רשתות, נסה לשמור אותו על מה שיש ב- RFC.
קרא גם: כיצד לזכור דוא"ל ב- Outlook?
שאלות ותשובות
- אחרי שאני מוסיף אותם בפנקס +, היכן אני מוסיף את הקודים האלה?שים אותם על שרת אינטרנט (כגון Apache) התומך ב- PHP. אתה יכול להתקין את XXAMP במחשב המקומי שלך, או לארח אותם בשרת אינטרנט אחר.