Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hej
Próbuję sobie wyliczyć CIDR dla sieci IP zawierającej np. 256 hostów. Robię to za pomoca bc i dostaję output:
echo "32-l(256)/l(2)" | bc -l 23.99999999999999999993
Co zrobić, żeby prawidłowo wyświetlało się 24?
Offline
Próbuję sobie wyliczyć CIDR dla sieci IP zawierającej np. 256 hostów. Robię to za pomoca bc i dostaję output:
Masz do tego w repo gotowiusiego ipcalc.
np:
#~> ipcalc 192.168.1.1/24
Address: 192.168.1.1 11000000.10101000.00000001. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.1.0/24 11000000.10101000.00000001. 00000000
HostMin: 192.168.1.1 11000000.10101000.00000001. 00000001
HostMax: 192.168.1.254 11000000.10101000.00000001. 11111110
Broadcast: 192.168.1.255 11000000.10101000.00000001. 11111111
Hosts/Net: 254
Sznurek do programu:
http://jodies.de/ipcalc
Także kopać z sandała w otwarte drzwi nie musisz.
xD
Pozdro
Ostatnio edytowany przez Jacekalex (2021-02-06 04:44:16)
Offline
Tylko że ja chcę zadziałać w drugą stronę. Mam dane, że sieć to 192.168.1.0 i zawiera 256 adresów a jako output chcę otrzymać 192.168.1.0/24
Offline
DeWu napisał(-a):
Tylko że ja chcę zadziałać w drugą stronę. Mam dane, że sieć to 192.168.1.0 i zawiera 256 adresów a jako output chcę otrzymać 192.168.1.0/24
Proszę uprzejmie:
ipcalc 192.168.1.0 - 192.168.1.255 deaggregate 192.168.1.0 - 192.168.1.255 192.168.1.0/24
albo:
ipcalc 192.168.1.0 - 192.168.1.221 deaggregate 192.168.1.0 - 192.168.1.221 192.168.1.0/25 192.168.1.128/26 192.168.1.192/28 192.168.1.208/29 192.168.1.216/30 192.168.1.220/31
Przy czym z 256 adresami w Ipv4 trafiłeś kulą w plot, bo adres sieci, adres bramy domyślnej i broadcast zeżrą Ci 3 adresy, wiec dostępne opcje to 253 przy masce 24 albo 509 przy masce 23.
Jak już chcesz rzeźbić skrypty do adresów IP, to radziłbym pobawić się Ipv6,
powodem jest fakt, że Ipv4 stało się w Europie anachronizmem z chwilą, kiedy w RIPE skończyły się wolne adresy.
W tej chwili w Polsce łatwiej kupić komplet dwóch nerek od jednego dawcy,
niż paczkę publicznych adresów Ipv4 z maską 24.
Pozdro
Ostatnio edytowany przez Jacekalex (2021-02-07 07:14:09)
Offline
A co to ma do rzeczy skoro mam tylko plik csv z zerowym adresem i ilością adresów w posieci? Jedyne co mi przyszło do głowy to logarytmowanie. Plik wygląda tak:
31.41.24.0;2048 31.41.80.0;2048 31.41.136.0;2048 31.41.144.0;1024 31.41.148.0;1024
a na wyjściu potrzebuję uzyskać:
31.41.24.0/21 31.41.80.0/21 31.41.136.0/21 31.41.144.0/22 31.41.148.0/22
Offline
Czyli masz w tym csv ilości adresów typu 1024 albo 2048?
1024 to 2^10, 2048 to 2^11.
A więc 32 - (uzyskana potęga liczby 2 i gotowe).
bc umie czytać CSV?
Ja bym wziął pewnie perla.
O adresach w CSV dowiedziałem się z ostatniego Twojego postu.
W każdym razie, jak jedziesz z bc, to oznacza skrypt powłoki, perle czy pythony lepiej sobie radzą
z plikami CSV/XML/JSON czy bazami SQL.
Pozdro
Offline