Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   feste IP verändert ? (https://www.delphipraxis.net/152645-feste-ip-veraendert.html)

khh 30. Jun 2010 13:34

feste IP verändert ?
 
Hallo zusammen,
ich war bisher der Meinung, dass eine IP die lokal fest vergeben ist, auch dann für die Karte gilt, wenn keine Verbindung zum Router besteht.

Mein Logfile sagt mir aber, dass die IP bei nicht bestehender Verbindung 127.0.0.1, also localhost ist.


Kann das sein, oder kriegt der Rechner die "feste" und immer "identische" IP in dem Fall doch vom Router.

Ich frage deshalb so "blöd" weil die Hardware auf der unsere Software beim Kunden läuft, von einer anderen Firma eingerichtet wurde, und mir versichert wurde diese sei fest vergeben.
Danke für eure Meinungen
Gruss KHH

Bummi 30. Jun 2010 13:36

AW: feste IP verändert ?
 
http://de.wikipedia.org/wiki/Localhost

khh 30. Jun 2010 13:40

AW: feste IP verändert ?
 
Zitat:

Zitat von Bummi (Beitrag 1032624)

naja, das ist mir ja klar, beantwortet aber nicht meine Frage, warum die IP der eingebauten Karte im Falle einer "Nichterreichbarkeit" des Netzes nicht vorhanden ist, und statt dessen Localhost ausgelesen wird.

EDIT: nicht vorhanden sein soll

s.h.a.r.k 30. Jun 2010 13:42

AW: feste IP verändert ?
 
Hm, also ich kenne das eigentlich auch so, dass die Karte dann trotzdem die gleiche IP-Adresse hat. Allerdings ist es so, dass wenn eine dynamische vergeben ist, sucht sich Windows eine passende eigene IP-Adresse, die dann mit 169.xxx.xxx.xxx anfängt, soweit ich das noch weiß. Habe ich neulich mal in der c't gelesen.

khh 30. Jun 2010 13:44

AW: feste IP verändert ?
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1032628)
Hm, also ich kenne das eigentlich auch so, dass die Karte dann trotzdem die gleiche IP-Adresse hat. Allerdings ist es so, dass wenn eine dynamische vergeben ist, sucht sich Windows eine passende eigene IP-Adresse, die dann mit 169.xxx.xxx.xxx anfängt, soweit ich das noch weiß. Habe ich neulich mal in der c't gelesen.

eben,
deshalb gehe ich davon aus, dass der Techniker die IP nicht der Karte fest vergeben hat, sondern eher den Roter so konfiguriert hat, dass der immer die gleiche IP an diesen Rechner vergibt.

Anders kann ich mir das nicht erklären.

Bummi 30. Jun 2010 13:48

AW: feste IP verändert ?
 
sorry, ich hatte es wohl zu hastig gelesen.

AFAIK liefert auch IPConfig auch bei fest eingestellten IP-Adressen nichts zurück wenn die Verbindung fehlt.

s.h.a.r.k 30. Jun 2010 13:48

AW: feste IP verändert ?
 
Denkbar wäre es unter Umständen vielleicht, dass der DHCP-Server das anhand der MAC-Adresse verteilt. Direkt nachschauen kannst du nicht?

khh 30. Jun 2010 13:56

AW: feste IP verändert ?
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1032632)
Denkbar wäre es unter Umständen vielleicht, dass der DHCP-Server das anhand der MAC-Adresse verteilt. Direkt nachschauen kannst du nicht?

nee, kann ich im Moment leider nicht,
ich lese die IP mit folgender Routine aus:

Code:
function ipauslesen():string;


var

  rSockVer  : WordRec;

  aWSAData  : TWSAData;

  szHostName : array[0..255] of Char;

  pHE       : PHostEnt;

  sIP       : String;

begin

  // WinSock Version 1.1 initialisieren

  rSockVer.Hi := 1;

  rSockVer.Lo := 1;

  WSAStartup(Word(rSockVer), aWSAData );

  try

    FillChar(szHostName, SizeOf(szHostName), #0);

    GetHostName(szHostName, SizeOf(szHostName));

    pHE := GetHostByName(szHostName);

    if Assigned(pHE)

      then with pHE^ do

        sIP := Format(cTxtIP,

                [Byte(h_addr^[0]), Byte(h_addr^[1]),

                 Byte(h_addr^[2]), Byte(h_addr^[3])]);

  finally

    WSACleanup;

  end;

  result:= sIP;

end;

khh 30. Jun 2010 13:58

AW: feste IP verändert ?
 
Zitat:

Zitat von Bummi (Beitrag 1032630)
sorry, ich hatte es wohl zu hastig gelesen.

AFAIK liefert auch IPConfig auch bei fest eingestellten IP-Adressen nichts zurück wenn die Verbindung fehlt.

das stimmt, das hab ich grad hier bei mir ausprobiert :-(

rollstuhlfahrer 30. Jun 2010 21:44

AW: feste IP verändert ?
 
Delphi-Quellcode:
GetHostName(szHostName, SizeOf(szHostName));
Damit holst du dir doch den Hostnamen des lokalen Computers. Ein Ansatz für eine Erklärung wäre, dass hier zwar der richtige Name zurückgegeben wird, aber bei
Delphi-Quellcode:
GetHostByName(szHostName);
wird ja der Host aufgelöst. Da es keine aktive Netzwerkkarte gibt, wird das Loopback-Interface verwendet und da hat der eigene Rechner die 127.0.0.1 (wobei auch alle anderen mit 127.x.x.x funktionieren würden).

Bernhard

khh 1. Jul 2010 06:31

AW: feste IP verändert ?
 
Zitat:

Zitat von rollstuhlfahrer (Beitrag 1032737)
Delphi-Quellcode:
GetHostName(szHostName, SizeOf(szHostName));
Damit holst du dir doch den Hostnamen des lokalen Computers. Ein Ansatz für eine Erklärung wäre, dass hier zwar der richtige Name zurückgegeben wird, aber bei
Delphi-Quellcode:
GetHostByName(szHostName);
wird ja der Host aufgelöst. Da es keine aktive Netzwerkkarte gibt, wird das Loopback-Interface verwendet und da hat der eigene Rechner die 127.0.0.1 (wobei auch alle anderen mit 127.x.x.x funktionieren würden).

Bernhard

danke dir, siehst du ne Möglichkeit an die Ip der nicht aktiven Karte zu kommen?

himitsu 1. Jul 2010 06:36

AW: feste IP verändert ?
 
Wenn die Karte nicht aktiv ist, dann hat sie keine IP.

Lösung
- die zuletzt verwendete IP auslesen
(falls sich das überhaupt jemand auf dem eigenem System merkt ... diese dürft bei einer festen IP mit der nächten verwendeten IP "mit hoher Wahrscheinlichkeit" übereinstimmen)
- falls eine statische IP verwendet wird, dann den Wert auslesen, welcher bei einem Verbindungsaufbau "mit hoher Wahrscheinlichkeit" verwendet werden würde
(aber ich glaub auch, daß diese Einstellungen Serverseitig gespeichert ist. also bei dem, welcher für die IP-Vergabe verantwortlich ist und das ist nicht der eigene PC aka Client)

idefix2 1. Jul 2010 06:51

AW: feste IP verändert ?
 
Schau in die Eigenschaften der Netzwerkverbindung. Wenn dort die IP fix eingetragen ist, müsstest es einen Windows API Call geben, der sie Dir liefert. Wenn dort DHCP (oder automatisch) eingetragen ist, hast Du keine Chance, weil dann wird die Adresse dem PC erst bei der Verbindungsherstellung bekanntgegeben.
Wenn die IP Adresse wirklich fix ist, könntest Du natürlich die Einstellung DHCP durch das Eintragen der Netzwerkadresse, die dem PC zugeordnet wird, ersetzen. Es ist für mich allerdings fraglich, ob diese Vorgangsweise empfehlenswert ist, weil letztlich eine zentrale Verwaltung der IP Adressen via DHCP schon eine Menge Vorteile bietet.

khh 1. Jul 2010 07:05

AW: feste IP verändert ?
 
Zitat:

Zitat von idefix2 (Beitrag 1032761)
Schau in die Eigenschaften der Netzwerkverbindung. Wenn dort die IP fix eingetragen ist, müsstest es einen Windows API Call geben, der sie Dir liefert. Wenn dort DHCP (oder automatisch) eingetragen ist, hast Du keine Chance, weil dann wird die Adresse dem PC erst bei der Verbindungsherstellung bekanntgegeben.
Wenn die IP Adresse wirklich fix ist, könntest Du natürlich die Einstellung DHCP durch das Eintragen der Netzwerkadresse, die dem PC zugeordnet wird, ersetzen. Es ist für mich allerdings fraglich, ob diese Vorgangsweise empfehlenswert ist, weil letztlich eine zentrale Verwaltung der IP Adressen via DHCP schon eine Menge Vorteile bietet.

ich überlege davon auszugehen bzw. es zukünfig vorrauszusetzen , dass eine feste IP eingetragen ist.

Ich speichere in einem Logfile die Nutzer mit der Rechner-IP des benutzten Rechners.
In einem funktionierenden Netz gibt es logischerweise keinerlei Probleme.
Das Problem tritt eben nur bei "beweglichen Maschinen" sprich Notebooks auf.
Sobald diese den Funkbereich des Netzes verlassen ist die IP eben die von Localhost :-(
Solange sich nur ein Notebook im Rechnerverbund befindet wäre das auch nicht so schlimm.
Allerdings speichere ich auch das Login zusammen mit der IP in der DB , um festzustellen ob jemand an diesem Arbeitsplatz angemeldet ist.

Und das geht natürlich daneben, wenn die IP "plötzlich" weg ist.

himitsu 1. Jul 2010 09:13

AW: feste IP verändert ?
 
Laß in soeinem Fall, wo 127.*.*.* oder localhost ausgelesen wird,
die IP weg und (er)setze diese, sobald wieder eine Verbindung zum Netz besteht.




Oder lokal werden keine IPs gespeichert und bei der Verbindung/Datenübertragung zum Server wird erst am Ziel die Verbindungs-IP mit abgespeichert.

PS: Wenn die IP nur lokal gespeichert wird, dann könnte man diese fälschen. :stupid:

idefix2 1. Jul 2010 09:22

AW: feste IP verändert ?
 
Aber wenn sie den Funkbereich verlassen, haben sie doch auch keine Verbindung zum Datenbankserver mehr. Oder arbeiten sie dann auf einer lokalen Kopie der DB, die später synchronisiert wird?

khh 1. Jul 2010 09:49

AW: feste IP verändert ?
 
Zitat:

Zitat von idefix2 (Beitrag 1032782)
Aber wenn sie den Funkbereich verlassen, haben sie doch auch keine Verbindung zum Datenbankserver mehr. Oder arbeiten sie dann auf einer lokalen Kopie der DB, die später synchronisiert wird?

das ist richtig.
Allerdings kommt es vor, dass bei einer Einzelplatzversion die DB lokal gepflegt wird.
Und wenn dann der Rechner zur Internetnutzung mitverwendet wird, dann krachts eben.


Deswegen eine andere Routine in die (Einzelplatz- )Programme integrieren zu müssen, wollte ich vermeiden.

Dem Kunden zu verbieten, den Laptop noch anderweitig zu nutzen geht halt auch nicht.;-)

Wir hatten in einem Fall schon Mühe den Kunden zu überzeugen, dass das Hin- und Herkopieren der DB zwischen 2 Rechnern nicht problemlos funktionieren kann.

idefix2 1. Jul 2010 10:26

AW: feste IP verändert ?
 
Du könntest ja in der Routine abfragen, ob die Datenabnk lokal oder im Netz liegt, und die IP nur abfragen, wenn er mit einer nicht-lokalen Datenbank verbunden ist.

khh 1. Jul 2010 12:13

AW: feste IP verändert ?
 
Zitat:

Zitat von idefix2 (Beitrag 1032793)
Du könntest ja in der Routine abfragen, ob die Datenabnk lokal oder im Netz liegt, und die IP nur abfragen, wenn er mit einer nicht-lokalen Datenbank verbunden ist.

stimmt, gute idee, werd ich somachen

ich danke euch


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz