Wie wird der IP-Bereich berechnet, wenn die IP-Adresse und die Netzmaske angegeben werden?
Wenn ein IP-Bereich geschrieben werden als aaa.bbb.ccc.ddd/netmask (CIDR-Notation) benötige ich zur Berechnung der ersten und letzten enthalten ip-Adresse in diesem Bereich mit C#.
Beispiel:
Eingang: 192.168.0.1/25
Ergebnis: 192.168.0.1 - 192.168.0.126
InformationsquelleAutor der Frage Anheledir | 2009-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
mein guter Freund Alessandro haben eine schöner Beitrag über bit-Operatoren in C#, sollten Sie Lesen, damit Sie wissen, was zu tun ist.
Es ist ziemlich einfach. Wenn Sie brechen die IP gegeben um Sie binäre, die Netzwerk-Adresse ist die ip Adresse wo alle host bits (die 0 in der Subnetzmaske 0 sind,und die Letzte Adresse die broadcast-Adresse ist, wo alle host-bits sind 1.
Beispiel:
Den Fett gedruckten Teile der HOST-bits (der rest sind Netz-bits). Wenn Sie nun alle host-bits auf 0 auf die IP-Adresse, erhalten Sie die erste mögliche IP:
Wenn Sie nun alle host-bits auf 1, dann bekommst du die Letzte mögliche IP (auch bekannt als broadcast-Adresse):
Also für mein Beispiel:
InformationsquelleAutor der Antwort balexandre
Werde ich nur nach dem code:
InformationsquelleAutor der Antwort Joren
Habe ich gelernt, diese Verknüpfung von arbeiten an den network deployment-position. Es half mir so viel, ich dachte mir, ich Teile dieses Geheimnis mit jedermann. So weit habe ich nicht finden können, ein einfacher Weg online, die ich kenne.
Beispielsweise ein Netzwerk 192.115.103.64 /27, was ist die Reichweite?
nur daran erinnern, dass die Subnetz-Maske 0, 128, 192, 224, 240, 248, 252, 254, 255
255.255.255.255 11111111.11111111.11111111.11111111 /32
255.255.255.254 11111111.11111111.11111111.11111110 /31
255.255.255.252 11111111.11111111.11111111.11111100 /30
255.255.255.248 11111111.11111111.11111111.11111000 /29
255.255.255.240 11111111.11111111.11111111.11110000 /28
11111111.11111111.11111111.11100000 255.255.255.224 /27
11111111.11111111.11111111.11000000 255.255.255.192 /26
255.255.255.128 11111111.11111111.11111111.10000000 /25
255.255.255.0 11111111.11111111.11111111.00000000 /24
aus /27 wir wissen, dass (11111111.11111111.11111111.11100000). Gerechnet von der linken Seite, es ist die Dritte Zahl aus dem letzten Oktett, die gleich 255.255.255.224 Subnetz-Maske. (Don ' T count 0, 0 /24) also 128, 192, 224..etc
Hier die Mathematik ins Spiel:
verwenden Sie die subnet-Maske - die Subnetz-Maske des vorherigen aufgeführten Subnetz-Maske
in diesem Fall 224-192=32
Wissen wir 192.115.103.64 ist das Netzwerk: 64 + 32 = 96 (das nächste Netzwerk für /27)
das heißt, wir haben .0.32. 64. 96. 128. 160. 192. 224. (Nicht mit 256, weil es .255)
Hier ist die Auswahl 64 -- 96.
Netzwerk ist 64.
erste host 65.(erste Netzwerk +1)
Letzten host 94. (broadcast -1)
broadcast ist 95. (Letzte Netzwerk -1)
InformationsquelleAutor der Antwort Jamison Ye
Maske invertieren (XOR mit Einsen), UND es mit der IP. 1 hinzufügen. Dies wird der Start-Bereich.
ODER IP mit Maske. Dies wird die End Bereich.
InformationsquelleAutor der Antwort Vladislav Rastrusny
Ich würde empfehlen die Verwendung von IPNetwork Bibliothek https://github.com/lduchosal/ipnetwork.
Ab der version 2, unterstützt IPv4 und IPv6 als auch.
IPv4
Ausgabe
Spaß haben !
InformationsquelleAutor der Antwort LukeSkywalker
Ich weiß, dies ist eine ältere Frage, aber ich fand diese nette Bibliothek auf nuget, das zu tun scheint, nur der trick für mich:
http://nuget.org/packages/TakeIo.NetworkAddress/
InformationsquelleAutor der Antwort Matt Millican
Sie vielleicht schon wissen, aber um zu überprüfen, dass Sie das Zeug haben Sie einen Blick auf http://www.subnet-calculator.com/ - Sie können dort sehen, wie die bits repräsentieren den Netzwerk-und host-Teile der Adresse.
InformationsquelleAutor der Antwort Trevor Tippins
Eingang:
192.168.0.1/25
Ist die Maske dieser Artikel:
/25
Finden Sie die Netzwerk-Adresse, tun Sie Folgendes:
Subtrahieren Sie die Maske aus der ip-length (32 - Maske) = 32 - 25 = 7 und nehmen Sie die bits von rechts
In der gegebenen ip-Adresse
I. e:
192.168.0.1
im Binär ist:11111111 11111111 00000000 00000001
Nun, unter 7 bits von rechts '0'
1111111 11111111 00000000 00000000
Die in dezimal ist:
192.168.0.0
(dies ist die Netzwerk-Adresse)Finden erste gültige/nutzbare ip-Adresse hinzufügen +1 Netzwerk-Adresse, I. e:
192.168.0.1
Finden Sie die last - /broadcast-Adresse das Verfahren ist dasselbe wie die Suche nach Netzwerk-Adresse, aber hier haben Sie zu machen
(32-Maske) bits von rechts auf '1'
I. e:
11111111 11111111 00000000 01111111
Die in dezimal ist
192.168.0.127
Finden Sie die zuletzt gültige/nutzbare ip-Adresse subtrahieren Sie 1 von der broadcast-Adresse
I. e:
192.168.0.126
InformationsquelleAutor der Antwort Nilay Jha