Subnet számolás?
Írnom kell egy programot c-ben ami az IP osztályból(A,B,C) és az alhálózatok számából kiszámolja a subnet maskot.
Viszont fogalmam sincs hogy ip nélkül hogy kell ezt kiszámolni
Előre is köszi a segítségeket!
Írj egy programot (JAVA vagy C nyelven), amely a parancssori paraméterek alapján kiszámolja az alhálózati maszkot.
Input (parancssori argumentum): egy címosztályt (betűvel jelezve), illetve az alhálózatok számát.
Output: a kapott alhálózati maszk
A programodban kezeld az alábbi eseteket is:
Csak A, B vagy C osztályos címet lehet tovább bontani, ettől eltérő paraméternél jelezz hibát!
Vizsgáld meg, hogy az adott címosztály esetén van-e lehetőség a megadott számú hálózatra felosztani a tartományt?
Pl.
Input:
SubnetCalc A 4
Output:
subnet mask: 255.192.0.0
Bitekben...
A: /8 Tehát a MASZK 8 bites: 11111111.00000000.00000000.00000000
11111111.00000000.00000000.00000000 (2) = 255.0.0.0 (10)
B: /16 Tehát a MASZK 16 bites: 11111111.11111111.00000000.00000000
11111111.11111111.00000000.00000000 (2) = 255.255.0.0 (10)
C: /24 Tehát a MASZK 24 bites: 11111111.11111111.11111111.00000000
11111111.11111111.11111111.00000000 (2) = 255.255.255.0 (10)
/x azt jelenti, hogy annyi 1-es van az elejétől számolva. Ennyi erővel ez is egy maszk:
/11 -> 11111111.1110000.00000000.00000000
11111111.11100000.00000000.00000000 (2) = 255.112.0.0 (10)
- - - - - - - - - - - - - - - - - - - - - - - - -
Nyilván IP hálózat címet meg úgy számolunk, hogy:
LEgyen az IP a: 10.140.1.20 -> 00001010.10001100.00000001.00010100
Amit bitenként ÉS-elünk (Tehát ha egymás alatt 1-es van akkor 1, minden más esetben 0):
00001010.10001100.00000001.00010100
11111111.11100000.00000000.00000000 (&)
00001010.10000000.00000000.00000000 => 10.128.0.0 (10.140.1.2 hálózati címe)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!