2012-10-16 18 views
11

Sagen wir, ich habe ein Subnetz von 255.255.255.242 und ich habe eine bekannte IP in diesem Subnetz sagen 192.168.1.101.Berechne den Bereich der IPs von Subnetzmaske

Nun ist die Art, wie ich den Bereich von IP-Adressen zu berechnen, ist dies:

In der Subnetz-Maske das erste Oktett finden, das nicht ein 255. In meinem Beispiel ist, sein 4. Oktett und seine 242. So nimmt 256 und subtrahieren 242, das gibt uns 14 So, jetzt wissen wir, dass diese Netzwerke, die 192.168.1.x Netzwerke, alle über einen Bereich von 14 haben, so beginnen sie gerade Listing ...

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

Hier sind wir kann stoppen. Meine Adresse 192.168.1.101 fällt in das .98-Netzwerk. .98 umfasst alle IP-Adressen von 192.168.1.98 bis 192.168.1.111, da wir wissen, dass 192.168.1.112 das nächste Netzwerk startet.

Ich möchte bestätigen, ob dies der richtige und der einfachste Prozess ist, dies zu tun.

+0

255.255.255.242 ist keine gültige Teilnetzmaske. Es darf keine Lücken in den Bits geben. – Joe

+0

ok, können Sie mir mit der Berechnung helfen Joe –

Antwort

31

Eine Netzmaske ist eine Serie von 1 Bits. Die Bits müssen sequentiell ohne 0 Lücken sein. Alles, was ein 1-Bit verwendet, ist Teil des Netzwerks, alles verbleibende ist gültig für die Host-Zuweisung innerhalb dieses Netzwerks. Eine 255.255.255.224 hat 27 "1" -Bits, was bedeutet, dass es sich um ein/27-Netzwerk handelt.

Um dieses Recht zu berechnen, müssen Sie IPs in eine numerische Darstellung konvertieren. Zum Beispiel ist 255.255.255.224 11111111 11111111 11111111 11100000, was 4294967264 ist. 192.168.1.101 ist 3232235877 (11000000 10101000 00000001 01100101).

Wenn Sie die IP und bitweise UND mit der Netzmaske, das gibt Ihnen die Netzwerkadresse. Dies ist das untere Ende des Bereichs:

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

Das Komplement (bitweise NOT) der Maske gibt Ihnen die Größe des Bereichs:

00000000 00000000 00000000 00011111 = 31 

Folglich wird der Bereich für die IP zwischen 192.168 .1.96 - 192.168.1.127. (127 = 96 + 31)

+1

ausgezeichnet, klar wie Kristall. Danke Joe. –

+0

verblüffend Details, vielen Dank. Aber ich frage mich, ob es einen Fehler gibt: .96 bis .127 macht 32 Elemente, wenn ich nicht irre. So ist es .127 oder .126? – dvkch

+0

Sie haben Recht, weil 0-basierte Mathematik. Es gibt 32 gültige Adressen im Bereich, aber 0 ist einer von ihnen, also ist die obere Grenze (n + 31). – Joe

0

Danke an euch beiden Joe und dig_123 aber, Joe's Antwort hätte mit einem/28 Subnetz geklärt werden können, anstatt mit der angegebenen/27, die näher an seinem Beispiel gewesen wäre und zwischen 92- 112.

Also, Joe, wenn ich Ihren Punkt richtig verstehe, sagen Sie, dass Sie das Subnetted Oktett nehmen; Bestimmen Sie den Inkrementbitwert und fügen Sie ihn dem Subnetzwert im SN-Oktett hinzu. Dies sollte den Bereich angeben und die Werte für die Adressen Netzwerk, erster Host, letzter Host und Broadcast bereitstellen. Ist das korrekt? dh in meinem Beispiel wäre das vierte Oktett eine 240 und das Inkrement wäre 16. Da der Wert im vierten Oktett 96 ist, fällt es in den berechneten Bereich für ein 16-Bit-Inkrement, tatsächlich liegt es zwischen 96 und 112, was ist einer der 16-Bit-Bereich, so dass wir, dass unsere Netzwerkadresse für dieses Beispiel schließen ist:

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

"_... du nimmst das Subnetted Oktett ..._" Nein. Oktetts haben nichts mit Subnetting zu tun. Die Punkt-Dezimal-Notation ist einfach, um Menschen das Lesen zu erleichtern. IPv4-Adressen sind einfach 32-Bit-Ganzzahlen. Sie müssen Subnetting wirklich binär durchführen, dann macht alles Sinn und ist leicht zu sehen. Vergessen Sie die Oktetts, wenn es um das Subnetting geht, sonst bereiten Sie sich selbst auf Fehler vor. –

0

um etwas zu Joe Antwort hinzufügen: wenn Sie mehr die Vorgänge programmatisch tun möchten (setzt die Kenntnis über Bit-Operatoren).

Sie wissen bereits, dass nur die letzte Nummer geändert wird, aber diese Methode könnte für andere Fälle etwas anders verwendet werden, wie ich später zeige.

Number from mask: 224 
Number from IP: 101 

Verwendung von z.B.Python oder Ihre Lieblingstaschenrechner-Programm:

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

(~224 & 255) nur setzt man auf jedes Bit, das (die letzten 5 Bits das ist) nicht ein in 244 war; OR'ing das Ergebnis mit 96 kopiert nur die ersten 3 Bits von der ersten Adresse.

So ist das Ergebnis erwartet: 192.168.1. - 192.168.1. .


Wenn die Maske vor der letzten Zahl endet, gibt es ein sehr ähnliches Verfahren; Nehmen wir ein Beispiel tun:

Lassen Sie uns den Einsatz 255 .0.0 als Maske, und die gleiche IP-Adresse (192. .1.101).

Wieder ist es nur eine Zahl zu kümmern, die jetzt die eine in der zweiten Position ist: 168.

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

Nun wird die Zahl auf der linken Seite (erste Position) bleibt gleich (192) und der Rest der Zahlen auf der rechten Seite reicht von 0 bis 255 (je nachdem, was sie fragen, kann es auch von 1 bis 254 sein).

So wäre die Lösung: 192. .0.0 - 192. .255.255

Verwandte Themen