AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Automatisches Verbinden eines Programm über Netzwerk

Automatisches Verbinden eines Programm über Netzwerk

Ein Thema von Gydan · begonnen am 26. Jun 2004 · letzter Beitrag vom 27. Jun 2004
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Sharky
Sharky

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

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 06:38
Zitat von Gydan:
Also ich hab einfach eine Schleife genommen und dann von 0-255 einfach eine Meldung rausgejagt.....
Hai Gydan,
ohne die Information über die IP-Adresse und die SubnetzMaske des Rechners wirst Du es nie "perfekt" machen können
Denn von diesen beiden hängt die Broadcast-Adresse ab.

z.B:

RechnerIP : 192.168.1.5
SubNetzamsk : 255.255.255.0 (Class-C)

Dann ist die:
"Netzadresse" : 192.168.1.0
Broadcastadresse : 192.168.1.255

aber jetzt sieht es schon ganz anders aus:

RechnerIP : 192.168.1.150
SubNetzamsk : 255.255.255.240 (Subnetting von Class-C)

Dann ist die:
"Netzadresse" : 192.168.1.144
Broadcastadresse : 192.168.1.159

Du solltest also IP-Adresse und Subnetzmaske rausfinden und daraus dann die Broadcastadresse erechnen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#12

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 09:22
Ich sehe jetzt keinen Zusammenhang zwischen den ganzen Adressen. Und was ist die "Netzadresse"?
Wie bekomme ich die Subnetzmaske raus?
  Mit Zitat antworten Zitat
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
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#14

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 10:30
das ist mal ne klasse antwort,

danke sharky

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#15

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 14:20
Ich denke mal, ich habe es so weit verstanden, wie ich es brauche.

Fragen:

1. Wie komm ich an die Subnetmask?

2. Um die Netzadresse auszurechnen, zerlege ich die IP und die Subnetmask in die vier Einzelteile, wandel sie in Binärzahlen um, rechne die Einzelnen Teile mit AND aus. Dann mache ich das gleiche nochmal nur mit OR NOT und setzte alles zu der Broadcast-Adresse zusammen. Hab ich das richtig verstanden? Bevor ich mich da in was verrenne, was total falsch ist.

3. Gibt es den Code nicht irgendwo, das hat doch sicher schon mal jemand gemacht und wird öfters genommen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 15:11
Hai Gydan,

zerlegen musst Du sie nicht. Hast Du zufällig die JVCL-Installiert? Wenn ja schaue Dir mal das hier an.

Wie die Subnetzmaske ermittelt wird wurde hier schon öfters gefragt glaube ich. Suche einfach einmal
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#17

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 15:38
Ich habe keine JVDL installiert. Kenn ich auch nicht.
Wegen der Subnetzmaske hab ich noch nichts gefunden, werde abe noch mal gucken.
  Mit Zitat antworten Zitat
Gydan
(Gast)

n/a Beiträge
 
#18

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 19:11
Ich werde jetzt mal die Tipps von http://www.delphipraxis.net/internal...t=subnetzmaske und http://www.delphipraxis.net/internal...ect.php?t=6894 ausprobieren um die Subnetmask herauszubekommen.

Aber wie rechne ich die in die Broadcast-Adresse um? Es ist doch ein String, und zum rechnen brauche ich Binärzahlen, wie mache ich das?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 19:14
Zitat von Gydan:
....Aber wie rechne ich die in die Broadcast-Adresse um? Es ist doch ein String, und zum rechnen brauche ich Binärzahlen, wie mache ich das?
Du brachst sie nicht Binär sondern als Cardinal zahl.

z.B. 192.168.1.5 = (192 * 255^3) + (168 * 255^2) + (1 * 255^1) + (5 * 255^0)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#20

Re: Automatisches Verbinden eines Programm über Netzwerk

  Alt 27. Jun 2004, 19:16
Hi!

Wie du sie ausrechnen kannst, hat sharky ja mehr oder weniger beschrieben, du musst nur den String an den Punkten zerschnipseln und dann damit weiterrechnen (natürlich vorher strtoint(strtofloat)).

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz