Autor |
Beitrag |
Nico80
      
Beiträge: 39
WIN XP
DELPHI 2006
|
Verfasst: Do 03.08.06 15:49
Hallo an alle,
ich brauche Hilfe beim Ermitteln der eigenen IP-Adresse(n).
Und zwar ist mir eine Funktion mit WinSock bekannt.
Die Funktion ermittelt die IP-Adressen mit Hilfe des Hostname (getHostbyName).
Was ist wenn der Hostname nicht eindeutig ist?
Oder gibt es eine andere Möglichkeit die Ip-Adressen auszulesen?
Danke für mögliche Vorschläge!!
|
|
The Who
      
Beiträge: 25
Win XP Prof
D3 Prof, D8, D7E
|
Verfasst: Do 03.08.06 15:53
Zitat: | Ich brauche Hilfe beim Ermitteln der eigenen IP-Adresse |
Der eigene Rechner heißt doch immer localhost, oder ?
|
|
Jetstream
      
Beiträge: 222
|
Verfasst: Do 03.08.06 16:00
The Who hat folgendes geschrieben: | Der eigene Rechner heißt doch immer localhost, oder ? |
Er sucht wahrscheinlich die externe IP, mit der Andere über das Internet auf seinen PC zugreifen können.
|
|
Nico80 
      
Beiträge: 39
WIN XP
DELPHI 2006
|
Verfasst: Do 03.08.06 16:00
The Who hat folgendes geschrieben: | Zitat: | Ich brauche Hilfe beim Ermitteln der eigenen IP-Adresse |
Der eigene Rechner heißt doch immer localhost, oder ? |
Ich kann bzw. muss doch bei Windows XP einen Computernamen bzw. Hostnamen eingeben bzw. ändern. Systemeigenschaften --> Computername.
Die Funktion getHostname (Winsock) liefert genau diesen Computernamen zurück.
Ich suche genau die IP-Adresse, die ich unter den TCP-IP-Eigenschaften eingebe.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 03.08.06 16:17
Moin!
Schau mal hier, damit geht das ganz einfach (GetIPByName).
Gib mal in der Beispielanwendung localhost ein, dann liefert er dir bei der Adressauflösung deine eigene lokale IP. Im Quelltext der Demoanwendung kannst du sehen, wie man die Funktion(en) aufruft.
cu
Narses
//EDIT: Link korrigiert 
_________________ There are 10 types of people - those who understand binary and those who don´t.
Zuletzt bearbeitet von Narses am Do 03.08.06 17:22, insgesamt 1-mal bearbeitet
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Do 03.08.06 17:14
Also Narses,
ich bin beeindruckt!
Genau Deine Unit habe ich gesucht.
Und sie funktioniert bei mir, sogar auf meinem Win 95-Schätzchen!
Uli
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Do 03.08.06 17:16
|
|
Nico80 
      
Beiträge: 39
WIN XP
DELPHI 2006
|
Verfasst: Fr 04.08.06 09:45
Also wenn ich "localhost" angebe, bekomme ich die IP-Adresse 127.0.0.1
Aber ich möchte ja ohne Angabe eines Computernamens die IP-Adressen bekommen.
Also eine Funktion, die im System nachschaut, unter welchen Adressen der Rechner erreichbar ist.
Hat jemand Erfahrung mit der Windowsfunktion "getIpAddrTable"
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Fr 04.08.06 10:02
Ich bekomme auch die IP-Adresse 127.0.0.1, aber nur,
wenn ich das Netzwerkkabel von meinem Rechner ziehe
oder wenn alle anderen Rechner im Netzwerk ausgeschaltet
sind.
Uli
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 04.08.06 10:03
Moin!
Nico80 hat folgendes geschrieben: | Also wenn ich "localhost" angebe, bekomme ich die IP-Adresse 127.0.0.1
Aber ich möchte ja ohne Angabe eines Computernamens die IP-Adressen bekommen. |
Ähm, sorry, du mußt das Editfeld leer lassen...  (hab ich die Unit wirklich geschrieben...  ist wohl schon was her...  )
Nico80 hat folgendes geschrieben: | Also eine Funktion, die im System nachschaut, unter welchen Adressen der Rechner erreichbar ist. |
Ja, genau das tut die Funktion GetIPByName, wenn du einen Leerstring übergibst.  Hinweis: Wenn du mehrere Adressen erwartest, mußt du das IP-Array nehmen, sonst gibt´s nur die erste IP.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Fr 04.08.06 10:19
Narses hat folgendes geschrieben:
Hinweis: Wenn du mehrere Adressen erwartest, mußt du das IP-Array nehmen, sonst gibt´s nur die erste IP.
Auch bei dem IP-Array bekomme ich nur 1 IP-Adresse zurück:
127.0.0.1 ohne eingestecktes Netzwerkkabel
mit eingestecktem Netzwerkkabel meine lokale IP-Adresse!
Uli
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Fr 04.08.06 10:25
Und was ist daran falsch? 
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 04.08.06 10:31
Moin!
UliTs hat folgendes geschrieben: | Auch bei dem IP-Array bekomme ich nur 1 IP-Adresse zurück:
127.0.0.1 ohne eingestecktes Netzwerkkabel
mit eingestecktem Netzwerkkabel meine lokale IP-Adresse! |
Und genau so ist es korrekt. Wenn du eine zweite Netzwerkkarte oder Wählverbindung hast, würde eine weitere Adresse angezeigt werden.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Fr 04.08.06 10:32
Umgekehrte Frage: Was ist daran richtig?
Ich weiß nicht, ob 127.0.0.1 einen Sonderstatus hat.
Bei mir geht es konkret um folgendes Problem:
Meine Anwender bauen für Wochenendveranstaltungen
ein kleines Netzwerk auf. Auf einem der Rechner
soll ein Programm (A) laufen, welches Programmen (B) auf
anderen Rechnern auf Anfrage Daten zur Verfügung stellt.
Programm (A) soll die IP-Adresse seines Rechners anzeigen,
damit die Anwender bei Start des Programms (B) diese
IP-Adresse angeben können.
Das soll natürlich auch funktionieren, wenn der Rechner
mit Programm (B) als erstes eingeschaltet wird.
Uli
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 04.08.06 10:36
Moin!
Das ist korrekt so, den localhost kriegst du nur, wenn keine physikalische Adresse verfügbar ist.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Fr 04.08.06 12:36
Kann man denn bei Antwort IP-Adresse <> 127.0.0.1
davon ausgehen, daß man dann die lokale IP-Adresse
bestimmt hat?
Uli
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 04.08.06 12:43
Moin!
UliTs hat folgendes geschrieben: | Kann man denn bei Antwort IP-Adresse <> 127.0.0.1 davon ausgehen, daß man dann die lokale IP-Adresse bestimmt hat? |
Das kannst du in jedem Fall, denn 127.0.0.1 ist auch eine lokale IP-Adresse...  Du führst dann halt nur Selbstgespräche.
Ja, ich würde sagen, das man das kann.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
UliTs
      
Beiträge: 38
Win XP*, Win 7
xBase++, Delphi 10.3
|
Verfasst: Fr 04.08.06 13:12
Zitat: | Narses hat folgendes geschrieben:
Das kannst du in jedem Fall, denn 127.0.0.1 ist auch eine lokale IP-Adresse... Du führst dann halt nur Selbstgespräche.  |
Habe ich es richtig verstanden:
Die Adresse 127.0.0.1 existiert immer und bezieht sich immer auf den lokalen Rechner?
Eigentlich müßte sie doch auch dann in der Liste erscheinen, wenn eine physikalische Adresse verfügbar ist, oder?
Danke für Deine Geduld und Hilfe.
Uli
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Fr 04.08.06 13:25
UliTs hat folgendes geschrieben: | Die Adresse 127.0.0.1 existiert immer und bezieht sich immer auf den lokalen Rechner? |
Richtig 
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
Nico80 
      
Beiträge: 39
WIN XP
DELPHI 2006
|
Verfasst: Fr 04.08.06 13:54
Also klappt alles. Vielen Dank für die Hilfe!!!
Aber es muss doch auch eine Möglichkeit geben, an die Informationen aus den Eigenschaften der Netzwerkverbindungen(TCP/IP) zu kommen.
Genauso wie man an den Computernamen kommt. Man gibt die IP-Adressen schließlich ein und diese werden wohl irgendwo gespeichert.
Also auch wenn kein Netzwerkkabel steckt, die IP-Adresse X.X.X.X auszulesen und nicht die 127.0.0.1.
Zuletzt bearbeitet von Nico80 am Fr 04.08.06 14:37, insgesamt 2-mal bearbeitet
|
|