![]() |
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 |
AW: feste IP verändert ?
|
AW: feste IP verändert ?
Zitat:
EDIT: nicht vorhanden sein soll |
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.
|
AW: feste IP verändert ?
Zitat:
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. |
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. |
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?
|
AW: feste IP verändert ?
Zitat:
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; |
AW: feste IP verändert ?
Zitat:
|
AW: feste IP verändert ?
Delphi-Quellcode:
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
GetHostName(szHostName, SizeOf(szHostName));
Delphi-Quellcode:
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).
GetHostByName(szHostName);
Bernhard |
AW: feste IP verändert ?
Zitat:
|
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) |
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. |
AW: feste IP verändert ?
Zitat:
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. |
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: |
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?
|
AW: feste IP verändert ?
Zitat:
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. |
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.
|
AW: feste IP verändert ?
Zitat:
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