sfondo
Ispirato da questa domanda Unix.SE (e ovviamente dalla mia risposta ).
Quando viene specificato un indirizzo IP per un'interfaccia, viene spesso fornito in questo formato decimale puntato:
a.b.c.d e.f.g.h
dove si a.b.c.d
trova l'indirizzo effettivo ed e.f.g.h
è la maschera di rete.
La maschera di rete, quando rappresentata in binario, è sostanzialmente un gruppo di 1
bit seguito da un gruppo di 0
bit. Quando la maschera di rete è AND bit per bit rispetto all'indirizzo IP specificato, il risultato sarà la porzione di rete dell'indirizzo o semplicemente l' indirizzo di rete . Questo sarà programmato nella tabella di instradamento dell'host in modo che l'host sappia inviare qualsiasi cosa destinata a questa rete da questa interfaccia.
L'indirizzo di trasmissione per una rete viene derivato prendendo l'indirizzo di rete (dall'alto) e impostando tutti i bit dell'host su 1. L'indirizzo di trasmissione viene utilizzato per inviare a tutti gli indirizzi all'interno di una determinata rete.
Sfida
Dato un indirizzo IP decimale puntato e una maschera di rete valida come input, fornire l'indirizzo di rete e l'indirizzo di trasmissione come output, anche in formato decimale puntato.
- L'input deve essere indirizzo e maschera come due stringhe in formato decimale puntato. Puoi passare questo come 2 stringhe separate, come elenco o matrice di 2 elementi di stringa o una singola stringa con l'indirizzo e la maschera separati da un separatore sensibile.
- Il formato di output è soggetto agli stessi vincoli del formato di input.
Esempi
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
?