כתיבת קוד — שיעור 3
רשתות וסייבר: IP, TCP, HTTP, CIA Triad
כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.
T1 · מתחיל
100 נק'
~10 דק'
algorithmic
IPv4 → מספר 32-סיביות (עם ולידציה)
נתונה כתובת IPv4 כמחרוזת בפורמט dotted-quad. אם תקינה — החזר את ערכה כמספר שלם 32-סיביות (האוקטט השמאלי הוא הבייט המשמעותי ביותר). אם לא תקינה — החזר None. כתובת תקינה: בדיוק 4 אוקטטים, כל אחד ספרות עשרוניות בטווח 0–255, ללא אפסים מובילים (פרט ל-"0"), ללא רווחים או תווים זרים.
דוגמאות
ip_to_int('1.2.3.4') → 16909060
ip_to_int('255.255.255.255') → 4294967295
ip_to_int('256.0.0.1') → None
הפתרון נשמר מקומית אוטומטית.
T2 · בסיסי
200 נק'
~18 דק'
algorithmic
כתובת רשת ו-Broadcast מ-CIDR
נתונה נוטציית CIDR כמחרוזת "a.b.c.d/prefix" (למשל "192.168.1.10/24"). חשב והחזר צמד (network, broadcast) — כתובת הרשת וכתובת ה-broadcast, שתיהן כמחרוזות dotted-quad. ה-prefix בטווח 0–32. אם ה-CIDR פסול (IP לא תקין, prefix מחוץ לטווח, פורמט שגוי) — החזר None. רמז: mask = 32 סיביות שה-prefix העליונות בהן דלוקות; network = ip AND mask; broadcast = network OR (NOT mask).
דוגמאות
subnet('192.168.1.10/24') → ('192.168.1.0', '192.168.1.255')
subnet('1.2.3.4/32') → ('1.2.3.4', '1.2.3.4')
הפתרון נשמר מקומית אוטומטית.