Alamvõrgu parameetrite määramine

Kirjutada programm, mis väljastaks sisestatud IP aadressi ja võrgumaski alusel alamvõrgu kohta käivat infot.

Iga Internetti ühendatud arvuti peab olema võrgust leitav. Arvuti identifitseerimiseks kasutatakse seejuures IP aadressi. Neljanda versiooni (IPv4) aadressid on 32-bitised, neid kirjutatakse nelja punktiga eraldatud kümnendsüsteemi arvu abil. Sealjuures võib iga arv olla vahemikus 0…255. Seega on esimene IP aadress väärtusega 0.0.0.0 ja viimane väärtusega 255.255.255.255. Kõik IP aadressid, mis antud vahemikku jäävad, moodustavad IP-ruumi.
Arvutid on Internetiga ühendatud mitmesuguste väiksemate võrkude kaasabil. Üks arvutivõrk peab kasutama mingit kindlat IP aadresside vahemikku. Kasutatava vahemiku suurus määratakse kindlaks võrgumaski abil ning seda nimetatakse üheks alamvõrguks. Seega määrab võrgumask alamvõrgu suuruse. Iga alamvõrgu esimene IP aadress on nn. võrguaadress, viimane aadress alamvõrgus aga nn. üldleviaadress. Antud kahte IP aadressi ühelegi võrguseadmele omistada ei saa.
Ühele IP aadressile vastava võrguaadressi leidmiseks tuleb nii see IP aadress kui ka kasutatav võrgumask teisendada kahendsüsteemi ning teostada saadud kahendarvude loogiline korrutamine (AND-tehe). Tulemuseks ongi selle alamvõrgu võrguaadress, kuhu antud IP kuulub. Loetavuse huvides teisendatakse võrguaadress tagasi kümnendkujule.
Üldleviaadressi saamiseks tuleb kõigepealt võrgumaski kahendkuju inverteerida (muuta nullid ühtedeks ja vastupidi), seejärel teostada IP aadressi ja inverteeritud võrgumaski vahel loogiline liitmine (OR-tehe). Tulemus näitab sellele alamvõrgule sobivat üldleviaadressi, kuhu antud IP kuulub.
Alamvõrgu suurust näitab inverteeritud võrgumask. Säärase maski suurus sisaldab aga ka üldleviaadressi. Seega saab alamvõrgus võrguseadmetele omistada tegelikult ühe võrra vähem IP aadresse, kui näitab inverteeritud võrgumask.
Võrgumaski kirjutamiseks on viimasel ajal kasutusel ka nn. lühendatud kuju (CIDR). Sellisel juhul kirjutatakse IP aadressi järele kaldkriipsu taha kümnendsüsteemi arv, mis näitab, kui mitu ühte antud võrgumask sisaldab. Seega maskile 255.255.255.0 vastab kirjapilt x.x.x.x/24 ja maskile 255.255.0.0 kirjapilt x.x.x.x/16.
Võrgumask 255.255.255.255 tähistab alamvõrku, mis sisaldab ainult ühte seadet. Tavaliselt kasutatakse seda viitamaks mõnele kindlale võrgus olevale masinale. Lühendatud kujul saab antud maski kirjutada kui x.x.x.x/32.

Ülesanne

  1. Kirjutada programm, mis trükiks ekraanile sisestatud IP aadressi ja võrgumaski alusel:
    • Antud alamvõrgu võrguaadressi
    • Antud alamvõrgu üldleviaadressi
    • Mitu võrguseadet antud alamvõrku ühendada saab
    • IP aadressi ja võrgumaski nn. lühendatud kujul
  2. Programm peab sisaldama elementaarset veatöötlust (veateade kuvatakse, kui IP aadressi või võrgumaski pole sisestatud, kui sisestatud andmed ei ole korrektsel kujul jne.)