Hintergrund
Inspiriert von dieser Unix.SE-Frage (und natürlich meiner eigenen Antwort ).
Wenn eine IP-Adresse für eine Schnittstelle angegeben wird, wird diese häufig in dieser Punkt-Dezimal-Form angegeben:
a.b.c.d e.f.g.h
Wo a.b.c.d
ist die tatsächliche Adresse und e.f.g.h
ist die Netzmaske.
Die Netzmaske ist, wenn sie binär dargestellt wird, im Grunde eine Reihe von 1
Bits, gefolgt von einer Reihe von 0
Bits. Wenn die Netzmaske gegen die angegebene IP-Adresse bitweise UND-verknüpft ist, ist das Ergebnis der Netzwerkteil der Adresse oder einfach die Netzwerkadresse . Dies wird in die Routentabelle des Hosts programmiert, damit der Host weiß, dass alles, was für dieses Netzwerk bestimmt ist, über diese Schnittstelle gesendet wird.
Die Broadcast-Adresse für ein Netzwerk wird abgeleitet, indem die Netzwerkadresse (von oben) genommen und alle Host-Bits auf 1 gesetzt werden. Die Broadcast-Adresse wird zum Senden an alle Adressen innerhalb des angegebenen Netzwerks verwendet.
Herausforderung
Geben Sie bei einer IP-Adresse mit gepunkteter Dezimalstelle und einer gültigen Netzmaske als Eingabe die Netzwerkadresse und die Broadcast-Adresse als Ausgabe an, ebenfalls im Punkt-Dezimal-Format.
- Die Eingabe muss Adresse und Maske als zwei Zeichenfolgen im Punkt-Dezimal-Format sein. Sie können dies als 2 separate Zeichenfolgen, als Liste oder Array von 2 Zeichenfolgenelementen oder als einzelne Zeichenfolge übergeben, wobei Adresse und Maske durch ein sinnvolles Trennzeichen getrennt sind.
- Das Ausgabeformat unterliegt denselben Einschränkungen wie das Eingabeformat.
Beispiele
Input Output
192.168.0.1 255.255.255.0 192.168.0.0 192.168.0.255
192.168.0.0 255.255.255.0 192.168.0.0 192.168.0.255
192.168.0.255 255.255.255.0 192.168.0.0 192.168.0.255
100.200.100.200 255.255.255.255 100.200.100.200 100.200.100.200
1.2.3.4 0.0.0.0 0.0.0.0 255.255.255.255
10.25.30.40 255.252.0.0 10.24.0.0 10.27.255.255
252
.
10.24.0.0 10.27.255.255
?