Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 10:20
Zitat von Gydan:
Ich sehe jetzt keinen Zusammenhang zwischen den ganzen Adressen. Und was ist die "Netzadresse"?
Wie bekomme ich die Subnetzmaske raus?
Hai Gydan,
ich versuche es mal zu beschreiben.

Eine IP-Adresse besteht aus vier Oktetten. Zum Beispiel:

Code:
Dezimal 192      . 168      . 1        . 1
Binär  11000000 . 10101000 . 00000001 . 00000001
Die IP-Adresse ist in zwei Teile unterteilt, um einen Host lokalisieren zu können. Das System kann damit feststellen, von welchem System ein Paket stammt oder an welches System das Paket geschickt werden muss. Wie die Telefonnummer, die aus einer Vorwahl und einer spezifischen Telefonnummer besteht, gibt es auch bei der IP-Adresse einen Teil, der das Netzwerk kennzeichnet, in dem das System enthalten ist und einen zweiten Teil, der den Host kennzeichnet.

Welcher Teil der gesamten Adresse jetzt die Netzwerkadresse und welcher die Hostadresse ist wird durch die Subnetzmaske bestimmt.
Alle Bits der IP-Adresse die mit der Subnetzmaske übereinstimmen ergeben die Netz-Adresse. Dies kann durch eine einfache AND verknüpfung gemacht werden.
Code:
IP-Adresse:
Dezimal 192      . 168      . 1        . 1
Binär  11000000 . 10101000 . 00000001 . 00000001

Subnetz-Maske
Dezimal 255      . 255      . 255      . 0
Binär  11111111 . 11111111 . 11111111 . 00000000
Code:
     11000000 . 10101000 . 00000001 . 00000001
AND 11111111 . 11111111 . 11111111 . 00000000
     -----------------------------------------
     11000000 . 10101000 . 00000001 . 00000000 = 192.168.1.0
Code:
     <-------- Netzadresse ------->  <-Host->
     11000000 . 10101000 . 00000001 . 00000001
In diesem Beispiel besteht die Netzadresse also aus den ersten drei Oktetten der Gesamt-IP während die Hostadresse aus dem letzen Oktett besteht.

Die Broadcastadresse eines Netzes ist jene bei der alle Bits der Hostadresse = 1 sein. Die wäre also in diesem Fall
Code:
        <-------- Netzadresse ------->  <-Host->
Binär  11000000 . 10101000 . 00000001 . 11111111
Dezimal 192      . 168      . 1        . 255

Rechnerich kannst Du das so ermitteln:
Netzadresse := IP-Adresse AND Subnetzmaske;
Broadcastadresse := Netzadresse OR (NOT Subnetzmaske);

Dies wäre der sicherste Weg die Broadcast-Adresse zu ermitteln.

Es gibt noch eine einfachere Methode die aber kein Subnetting berücksichtigt:
Dafür brauchst Du nur die oberen Bits des ersten Oktetts auszuwerten. Dabei gilt folgende Regel:

Code:
  0XXXXXXX -> Klasse-A Netzwerk (Broadcast = X.255.255.255)
  10XXXXXX -> Klasse-B Netzwerk (Broadcast = X.Y.255.255)
  110XXXXX -> Klasse-C Netzwerk (Broadcast = X.Y.Z.255)
Uff... ich hoffe das ist einigermassen zu verstehen. Wenn nicht -> Fragen
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat