tło
Inspirowane tym pytaniem Unix.SE (i oczywiście moją własną odpowiedzią ).
Gdy adres IP jest określony dla interfejsu, jest on często podawany w postaci dziesiętnej z kropkami:
a.b.c.d e.f.g.h
gdzie a.b.c.d
jest rzeczywisty adres i e.f.g.h
maska sieci.
Maska sieci, gdy jest reprezentowana w postaci binarnej, jest w zasadzie wiązką 1
bitów, po której następuje wiązka 0
bitów. Gdy maska sieci jest bitowo ANDowana względem podanego adresu IP, wynikiem będzie część sieciowa adresu lub po prostu adres sieciowy . Zostanie to zaprogramowane w tablicy tras hosta, aby host wiedział, że może wysłać wszystko przez sieć do tego interfejsu.
Adres rozgłoszeniowy dla sieci jest uzyskiwany poprzez pobranie adresu sieciowego (z góry) i ustawienie wszystkich bitów hosta na 1. Adres rozgłoszeniowy służy do wysyłania na wszystkie adresy w obrębie danej sieci.
Wyzwanie
Biorąc pod uwagę adres IP z kropkami dziesiętnymi i prawidłową maskę sieci jako dane wejściowe, podaj adres sieci i adres rozgłoszeniowy jako dane wyjściowe, również w formacie kropkowo-dziesiętnym.
- Dane wejściowe muszą być adresem i maską jako dwa ciągi w formacie kropkowo-dziesiętnym. Możesz przekazać to jako 2 oddzielne ciągi, jako listę lub tablicę 2 elementów ciągowych lub pojedynczy ciąg z adresem i maską oddzielonymi rozsądnym separatorem.
- Format wyjściowy podlega takim samym ograniczeniom jak format wejściowy.
Przykłady
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
w sobie.
10.24.0.0 10.27.255.255
?