2012-10-16 14 views
11

Powiedzmy, mam podsieć 255.255.255.242 i mam znany adres IP w tej podsieci, powiedzmy 192.168.1.101.Obliczanie zakresu adresów IP z maski podsieci

Teraz sposób obliczyć zakres adresów IP to:

w masce podsieci, znajdź pierwszy oktet, który nie jest 255. W moim przykładzie, jej 4. oktetu, a jej 242. Wez 256 i odjąć 242, co daje nam 14. Więc teraz wiemy, że te sieci, sieci 192.168.1.x, wszystkie posiadają szereg 14. Więc po prostu zacząć je wymieniając ...

192.168.1.0 
192.168.1.14 
192.168.1.28 
....42 
....56 
....70 
....84 
....98 
....112 

Tutaj Móc przestać. Mój adres 192.168.1.101 należy do sieci .98. .98 obejmuje wszystkie adresy IP od 192.168.1.98 do 192.168.1.111, ponieważ wiemy, że 192.168.1.112 uruchamia następną sieć.

Chcę potwierdzić, czy jest to właściwy i najłatwiejszy proces, aby to zrobić.

+0

255.255.255.242 nie jest prawidłową maskę podsieci. Nie może być luk w bitach. – Joe

+0

ok, Czy możesz mi pomóc w obliczeniach Joe –

Odpowiedz

31

Maska sieci to seria 1 bitów. Bity muszą być sekwencyjne bez zerowych odstępów. Wszystko za pomocą 1-bitowego jest częścią sieci, wszystko, co pozostało, jest ważne do przypisania hosta w tej sieci. A 255.255.255.224 ma 27 bitów "1", co oznacza, że ​​jest siecią a/27.

Aby obliczyć tę wartość, należy przekonwertować adresy IP na reprezentację numeryczną. Na przykład 255.255.255.224 to 11111111 11111111 11111111 11100000, który jest 4294967264. 192.168.1.101 jest 3232235877 (11000000 10101000 00000001 01100101).

Jeśli weźmiesz IP i bitowe I to z maską sieci, która da ci adres sieciowy. Jest to dolna granica zakresu:

11111111 11111111 11111111 11100000 (mask) 
11000000 10101000 00000001 01100101 (ip) 
----------------------------------- 
11000000 10101000 00000001 01100000 = 192.168.1.96 (network address) 

Dopełnieniem (bitowe NOT) maski daje rozmiar zakresu:

00000000 00000000 00000000 00011111 = 31 

Zatem zakres tego IP pomiędzy 192.168 .1.96 - 192.168.1.127. (127 = 96 + 31)

+1

doskonały, czysty jak kryształ. Dzięki Joe. –

+0

zadziwiająco szczegóły, wielkie dzięki. Ale zastanawiam się, czy jest błąd: od .96 do .127 tworzy 32 elementy, jeśli się nie mylę. Czy to jest .127 czy .126? – dvkch

+0

Masz rację, z powodu matematyki opartej na 0. W zakresie znajduje się 32 ważnych adresów, ale 0 jest jednym z nich, więc górna granica to (n + 31). – Joe

0

Dziękuję wam obojgu Joe i dig_123, ale odpowiedź Joe mogła zostać wyjaśniona za pomocą podininadu 28 podanej poniżej/27 czarownicy byłaby bliższa jego przykładowi i spadła pomiędzy 92 112.

więc, jeśli rozumiem, że mówisz, że bierzesz podnetkowany oktet; określ wartość bitu przyrostowego i dodaj ją do wartości podsieci w oktecie SN, która powinna podać zakres i podać wartości dla sieci, pierwszego hosta, ostatniego hosta i adresów rozgłoszeniowych. Czy to jest poprawne? tzn. w moim przykładzie 4 oktet będzie miał 240, a inkrement 16. Ponieważ wartość w 4 oktecie wynosi 96, mieści się w obliczonym zakresie dla 16-bitowego przyrostu, w rzeczywistości mieści się między 96 a 112, czyli jeden z 16 bitów waha się więc możemy stwierdzić, że nasz adres sieciowy dla tego przykładu jest:

0-15 
15-31 
32-47 
48-63 
64-79 
80-95 
96-111 
112-127 
128 
NW 192.168.1.96 /28 
1st 192.168.1.97 /28 
Last 192.168.1.110 /28 
Bcast 192.168.1.111 /28 
+1

"_... bierzesz podsieciowy oktet ..._" Nie. Oktety nie mają nic wspólnego z podsiecią. Kropkowo-dziesiętna notacja ma na celu ułatwić ludziom czytanie. Adresy IPv4 to po prostu 32-bitowe liczby całkowite. Naprawdę potrzebujesz podsieci w systemie binarnym, wtedy wszystko ma sens i jest łatwe do zobaczenia. Zapomnij o oktetach, jeśli chodzi o podsieci, w przeciwnym razie ustawiasz się na porażkę. –

0

aby dodać coś do odpowiedzi Joe: jeśli chcesz zrobić operacje bardziej programowo (zakłada wiedzę na operatorów bitowe).

Już wiesz, że zmieni się tylko ostatnia cyfra, ale ta metoda może być w nieco inny sposób stosowana w innych przypadkach, co pokażę później.

Number from mask: 224 
Number from IP: 101 

Stosując np.pyton lub ulubionego programu Kalkulator:

  • Start address byte: 224 & 101 = 96
  • End address byte: (~224 & 255) | 96 = 127

(~224 & 255) prostu ustawia się jednym w każdym calu, który nie był jednym z 244 (czyli ostatnie 5 bitów); OR'ing wyniku z 96 po prostu kopiuje pierwsze 3 bity z pierwszego adresu.

Rezultat jest oczekiwany: 192.168.1. - 192.168.1. .


Jeśli maska ​​kończy się przed ostatnią liczbą, procedura jest bardzo podobna; zróbmy przykład: stosowanie

Miejmy 255. .0.0 jak maska, a ten sam adres IP (192. .1.101).

Znowu istnieje tylko jeden numer dbać, która jest obecnie jedną na drugiej pozycji: 168.

  • Start address byte: 224 & 168 = 160
  • End address byte: (~224 & 255) | 160 = 191

Teraz liczba po lewej stronie (pierwsza pozycja) pozostaje taka sama (192), a reszta liczb z prawego zakresu od 0 do 255 (w zależności od tego, o co proszą, może to być także od 1 do 254).

Zatem rozwiązaniem byłoby: 192. .0.0 - 192. .255.255

Powiązane problemy