תיעוד IRC · מתקדמים
קריאה וניתוח של מבנה הודעת IRC
הודעת IRC מסתיימת ב־CRLF. היא עשויה לכלול תגיות, מקור, פקודה ופרמטרים. ב־TCP, מקטע נתונים שהתקבל אינו בהכרח שורה שלמה: חלוקה להודעות קודמת לפירוש שלהן.
צוות Dialova · נבדק בתאריך
פירוק שורה #
@time=2026-10-29T10:00:00.000Z :Alice!alice@cloak.example PRIVMSG #atelier :Bonjour tout le monde| רכיב | הערך בדוגמה | תפקיד |
|---|---|---|
| תגיות | @time=… | מטא־נתונים, לפני הרווח המפריד הראשון. |
| מקור / קידומת | :Alice!alice@cloak.example | השולח כפי שהשרת מציין אותו. |
| פקודה | PRIVMSG | פעולת פרוטוקול. |
| פרמטר יעד | #atelier | יעד. |
| פרמטר אחרון | :Bonjour tout le monde | פרמטר שמכיל רווחים; הנקודתיים אינן חלק מהטקסט. |
רווחים והפרמטר האחרון #
המפריד הבסיסי הוא רווח ASCII. אפשר לפתוח את הפרמטר האחרון בנקודתיים; כל מה שאחריהן שייך לו, כולל רווחים. פיצול פשוט של כל השורה לפי רווחים יאבד את המידע הזה.
TOPIC #atelier :
PRIVMSG Bob :texte avec des espaces
PING :jeton-123בדוגמה הראשונה יש פרמטר אחרון ריק; השנייה מכילה טקסט עם רווחים. סמני הכיוון C/S בדוגמאות האחרות במדריך אינם חלק מהבתים שנשלחים.
אורך, בתים וקידוד #
מגבלת האורך ההיסטורית של הודעת IRC היא 512 בתים, כולל CRLF. לא מדובר ב־512 תווים: תו UTF-8 עשוי לתפוס כמה בתים. לתגיות IRCv3 מגבלות נוספות משלהן, שאינן הופכות את שאר ההודעה לבלתי מוגבל.
IRC ההיסטורי אינו מבטיח קידוד יחיד לכל הטקסטים. לקוחות ורשתות מודרניים משתמשים לרוב ב־UTF-8, וערכי תגיות IRCv3 חייבים להיות בקידוד זה. יש לבדוק את מדיניות הרשת ואת הטיפול בקלט לא תקין; אין להניח משא ומתן אוטומטי על קידוד.
מנתח עמיד #
- צבירת בתים עד לסיום הודעה שלמה, ושמירת המקטע שנותר.
- טיפול בכמה שורות בקריאת רשת אחת ובשורה שהתפצלה לכמה קריאות.
- הגבלת הזיכרון לפני המתנה בלתי מוגבלת לסוף שורה.
- חילוץ ופענוח של אזור התגיות, ואז המקור, הפקודה והפרמטרים.
- אין לבצע אירוע היסטורי כשינוי של המצב הנוכחי.
מקורות ובדיקת המידע
הדוגמאות משתמשות בכינויים ובדומיינים בדויים, למעט כתובות חיבור שמתועדות במפורש. הרחבות והגדרות ייחודיות לרשת מצוינות בטקסט.
- Modern IRC — מפרט פרוטוקול הלקוח ↗מקור של המפרט · נבדק בתאריך 2026-10-29
- RFC 2812 — פרוטוקול הלקוח (2000) ↗מקור היסטורי · נבדק בתאריך 2026-10-29
- IRCv3 — תגיות הודעה ↗מקור של המפרט · נבדק בתאריך 2026-10-29