Entwickler-Ecke
Internet / Netzwerk - IP-Adresse ohne Hostname
Nico80 - Do 03.08.06 15:49
Titel: IP-Adresse ohne Hostname
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 - 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 - 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 - 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.
UliTs - 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
Nico80 - 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 - 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 - 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... :oops: (hab ich die Unit wirklich geschrieben... :gruebel: 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
UliTs - 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 - Fr 04.08.06 10:25
Und was ist daran falsch? :shock:
Narses - 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
UliTs - 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 - 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
UliTs - 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 - 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... :P Du führst dann halt nur Selbstgespräche. :mrgreen:
Ja, ich würde sagen, das man das kann. ;)
cu
Narses
UliTs - 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... :P Du führst dann halt nur Selbstgespräche. :mrgreen: |
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? :wink:
Danke für Deine Geduld und Hilfe.
Uli
Born-to-Frag - 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 :zustimm:
Nico80 - 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.
Narses - Fr 04.08.06 14:26
Moin!
Nico80 hat folgendes geschrieben: |
Also klappt alles wunderbar. Veilen Dank!!! |
Gern geschehen. ;)
Nico80 hat folgendes geschrieben: |
Die ganze Geschichte bezieht sich für einen sog. IP-Test. |
Nun, du redest ein wenig wirr... :gruebel: ;)
Nico80 hat folgendes geschrieben: |
Und zwar gibt es wohl das Phänomen (ich kann es leider nicht reproduzieren), dass nach einem erfolgreichen Windosstart es wohl eine gewisse Zeit dauert bis die IP-Adressen "aktiv" sind. |
Ja, und zwar genau so lange, bis du deine Konfig vom DHCP-Server (Router?) bezogen hast. ;)
cu
Narses
Narses - Fr 02.03.07 13:31
Moin!
Oh, du hattest deinen Beitrag nach meinem nochmal bearbeitet... ;) Also, der Vollständigkeit halber, hier noch was dazu:
Nico80 hat folgendes geschrieben: |
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. |
Das ist nicht so einfach, wie du dir das vorstellst. Eine IP-Adresse wird einem Computer nicht "fest" vergeben, sondern er wird versuchen, diese Adresse "anzunehmen". Wenn z.B. schon ein anderer Host im Netz diese Adresse hat, dann wird die Schnittstelle wieder geschlossen. Noch sehr viel schwieriger ist es, wenn du deine IP-Adresse dynamisch von z.B. einem Router beziehst. Woher willst du sie kennen, wenn du gar keine erhalten hast... ? ;)
Fazit: Es ist vielleicht irgendwie möglich, herauszufinden, was für eine "feste" Adresse du für eine bestimmte Schnittstelle vorgeben möchtest (eine API dafür gibt es AFAIK nicht) - aber leider ist diese Information mehr als bedenklich, weil du ohne eine Netzwerkverbindung gar nicht wissen kannst, ob du diese Adresse auch "benutzen darfst". :idea: Damit ist es faktisch sinnlos, die IP ohne Netzwerkverbindung ermitteln zu wollen. :mahn:
cu
Narses
GTA-Place - Fr 02.03.07 14:53
Meinst du die IP-Adresse, die du im Netzwerk hast? Also z.B. ist der Router 192.168.0.1 und deine eigene ist 192.168.0.2. Suchst du diese Adresse?
Narses - Fr 02.03.07 15:06
Moin!
Wen fragst du? ;)
cu
Narses
GTA-Place - Fr 02.03.07 15:15
Den Thread-Ersteller, da mir nicht ganz klar ist, welche IP-Adresse er möchte.
Narses - Sa 03.03.07 00:16
Moin!
GTA-Place hat folgendes geschrieben: |
Den Thread-Ersteller, da mir nicht ganz klar ist, welche IP-Adresse er möchte. |
Da der Thread schon etwas älter ist, zitiere ich einfach mal:
Nico80 hat folgendes geschrieben: |
Also auch wenn kein Netzwerkkabel steckt, die IP-Adresse X.X.X.X auszulesen und nicht die 127.0.0.1. |
Er möchte die Adresse einer Netzwerkschnittstelle im nicht verbundenen Zustand ermitteln. Und genau das ist IMHO sinnlos... ;)
//EDIT: Wenn ich mich recht erinnere, dann ging es in dem (jetzt geänderten) letzten Beitrag von
Nico80 darum, dass er beim Systemstart herausfinden wollte, wann die Schnittstelle eine gültige Adresse hat (war vielleicht auch ein Router im Spiel). Die entsprechende Lösung sollte ein einfacher Ping sein. ;)
cu
Narses
Delete - Sa 03.03.07 02:57
Born-to-Frag hat folgendes geschrieben: |
UliTs hat folgendes geschrieben: | Die Adresse 127.0.0.1 existiert immer und bezieht sich immer auf den lokalen Rechner? |
Richtig :zustimm: |
tja, ganz so einfach ist es nicht. es muss halt 'n TCP stack da sein, dann kannst du die adresse auslesen, aber es gibt ja noch andere netzprotokolle und auch systeme ohne netzwerk... obgleich diese immer weniger werden...
btw: die addy localhost, ist eine von mehreren reservierten IP's im TCP/IP protokoll.
Narses - Sa 03.03.07 13:25
Moin!
Grenzgaenger hat folgendes geschrieben: |
ganz so einfach ist es nicht. es muss halt 'n TCP stack da sein, |
Da die hier verwendeten Funktionen auf der WSA basieren, wird es wohl auffallen, wenn sie sich nicht ausführen lassen. ;) Abgesehen davon war das letzte WinOS, das standardmäßig ohne WSA ausgeliefert wurde, W95osrA... 8)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!