Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:web_sca:netzwerke:aufgaben_b [2023-11-05 12:30] – [Lösungen] sca | gf_informatik:web_sca:netzwerke:aufgaben_b [2023-11-05 12:53] (aktuell) – sca | ||
---|---|---|---|
Zeile 44: | Zeile 44: | ||
Subnetzmasken können auch durch CIDR-Suffix kürzer ausgedrückt werden. Dieser Wert gibt die Anzahl Bits an, die in der Subnetzmaske $1$ sind. Z.B. steht $/10$ für $255.192.0.0$. | Subnetzmasken können auch durch CIDR-Suffix kürzer ausgedrückt werden. Dieser Wert gibt die Anzahl Bits an, die in der Subnetzmaske $1$ sind. Z.B. steht $/10$ für $255.192.0.0$. | ||
- | Wandle um $4-$Byte-Notation $\rightarrow$ CIDR-Notation: | + | a) Wandle um $4-$Byte-Notation $\rightarrow$ CIDR-Notation: |
- | * $255.255.255.255$ | + | |
- | * $255.255.255.0$ | + | |
- | * $255.240.0.0$ | + | |
- | Wandle um CIDR-Notation $\rightarrow$ $4-$Byte-Notation: | + | b) Wandle um CIDR-Notation $\rightarrow$ $4-$Byte-Notation: |
- | * $/7$ | + | |
- | * $/25$ | + | |
=== Aufgabe B6: Subnetzmasken === | === Aufgabe B6: Subnetzmasken === | ||
1. Wie viele Hosts kann ein Netzwerk mit Subnetzmaske $255.255.255.192$ haben? | 1. Wie viele Hosts kann ein Netzwerk mit Subnetzmaske $255.255.255.192$ haben? | ||
+ | 1. Wie viele Hosts kann ein Netzwerk mit CIDR /14 haben? | ||
+ | 1. Welche Subnetzmaske (normal und CIDR) sollte der Informatiker einer Firma mit ca. $5000$ Geräten für das Netzwerk der Firma wählen? | ||
+ | |||
+ | |||
=== Zusatzaufgaben (Programmieren) === | === Zusatzaufgaben (Programmieren) === | ||
- | == Aufgabe 1 == | + | == a) == |
Schreibe ein Python-Programm (z.B. eine Funktion), welches für einen gegebenen CIDR-Suffix die entsprechende Subnetzmaske im $4$-Byte-Format (z.B. $255.192.0.0$) bestimmt und umgekehrt. | Schreibe ein Python-Programm (z.B. eine Funktion), welches für einen gegebenen CIDR-Suffix die entsprechende Subnetzmaske im $4$-Byte-Format (z.B. $255.192.0.0$) bestimmt und umgekehrt. | ||
- | == Aufgabe 2 == | + | == b) == |
+ | |||
+ | Programmiere nun eine eigene Auswahl der folgenden Funktionen: | ||
+ | |||
+ | * Subnetzmaske in andere Formate umwandeln: | ||
+ | * `subnet_dec_to_bin(subnet)` | ||
+ | * `subnet_bin_to_dec(subnet_bin)` | ||
+ | * `subnet_bin_to_cidr(subnet_bin)` | ||
+ | * `subnet_dec_to_cidr(subnet)` | ||
+ | * `cidr_to_subnet_bin(cidr)` | ||
+ | * `cidr_to_subnet_dec(cidr)` | ||
+ | * Abzahl mögliche Hosts für Subnetzmaske (in versch. Formaten) bestimmen: | ||
+ | * `nr_hosts_from_subnet_bin(subnet_bin)` | ||
+ | * `nr_hosts_from_subnet_dec(subnet_dec)` | ||
+ | * `nr_hosts_from_cidr(cidr)` | ||
+ | |||
+ | == c) == | ||
- | Erweitere deinen Code der vorherigen Zusatzaufgabe | + | Erweitere deinen Code aus a) und b) und implementiere einen **ultimativen Netzwerk-Rechner** im Stile der folgenden Website: https:// |
Man soll seine IP-Adresse und CIDR-Suffix angeben können und zurück erhalten: | Man soll seine IP-Adresse und CIDR-Suffix angeben können und zurück erhalten: | ||
* Subnetzmaske (verwende Code von vorheriger Zusatzaufgabe) | * Subnetzmaske (verwende Code von vorheriger Zusatzaufgabe) | ||
Zeile 107: | Zeile 127: | ||
++++Aufgabe B5| | ++++Aufgabe B5| | ||
- | siehe Tabelle hier: [[https:// | + | a) |
+ | i) 32, ii) 24, iii) 12 | ||
+ | |||
+ | b) i) 254.0.0.0, ii) 255.255.255.128 | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++Aufgabe B6| | ||
+ | |||
+ | 1. 62 | ||
+ | 1. 262142 | ||
+ | 1. 19 | ||
++++ | ++++ | ||
Zeile 151: | Zeile 182: | ||
subnet_bin = cidr_to_subnet_bin(cidr) | subnet_bin = cidr_to_subnet_bin(cidr) | ||
return subnet_bin_to_dec(subnet_bin) | return subnet_bin_to_dec(subnet_bin) | ||
+ | |||
+ | ### GET NR HOSTS | ||
+ | def nr_hosts_from_subnet_bin(subnet_bin): | ||
+ | zeros = subnet_bin.count(' | ||
+ | return 2**zeros - 2 | ||
+ | |||
+ | def nr_hosts_from_subnet_dec(subnet_dec): | ||
+ | subnet_bin = subnet_dec_to_bin(subnet_dec) | ||
+ | return nr_hosts_from_subnet_bin(subnet_bin) | ||
+ | |||
+ | def nr_hosts_from_cidr(cidr): | ||
+ | subnet_bin = cidr_to_subnet_bin(cidr) | ||
+ | return nr_hosts_from_subnet_bin(subnet_bin) | ||
### | ### | ||
Zeile 159: | Zeile 203: | ||
print(cidr_to_subnet_dec(10)) | print(cidr_to_subnet_dec(10)) | ||
print(cidr_to_subnet_bin(10)) | print(cidr_to_subnet_bin(10)) | ||
+ | |||
+ | print(nr_hosts_from_subnet_bin(" | ||
+ | |||
+ | print(nr_hosts_from_subnet_dec(" | ||
+ | print(nr_hosts_from_cidr(12)) | ||
+ | print(nr_hosts_from_cidr(19)) | ||
</ | </ | ||
++++ | ++++ | ||
</ | </ |