![]() |
Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw
loopback-adressen (127.*) kann man imho nicht binden, sie werden intern an 127.0.0.1 weitergeleitet. jedoch gabs unter WinXP mal einen "Bug", der nur eine begrenzte Anzahl von loopback-Adressen akzeptierte (glaube 127.0.0.1-127.0.0.6). dafür gibts aber einen Patch von MS:
![]() spätestens nach einspielen des Patches sollten sich alle 127er IPs anpingen lassen (antwort von 127.0.0.1) für dein problem musst du wohl einen eigenen IP-Bereich aufbauen, wie steve schon geschrieben hat. über die registry geht das bisschen schneller: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\{ 9D98BF32-BD94-4708-937C-A079C7125F52}\Parameters\Tcpip IPAddress => IPs mit Zeilenumbruch getrennt SubnetMask => passende Subnetmasks dazu HTH Frank |
Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw
Hallo,
Zitat:
Gruß xaromz |
Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw
Ja, das mit dem Binden der 127.* geht wirklich nicht. Die Lösung (für mich) ist es den Microsoft Loopbackadapter zu installieren. Damit ist es dann möglich IP-Adressen hinzuzufügen (geht natürlich auch mit der physikalischen Karte ... aber bei mir war dann plötzlich Schluß mit surfen) und diese einzeln oder im Broadcast anzusprechen.
Einziger Wermutstropfen, der Loopbackadapter lässt sich in Tools wie dem ![]() |
Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw
Für alle die es interessiert (und weil ich eine Eeewigkeit gebraucht habe um das rauszukriegen) gibts hier eine Funktion, die herausfindet, ob der Loopback Adapter bereits installiert ist. Getestet habe ich das ganze allerdings nur auf Windows XP (+SP2), wenn also jemand Lust hat und das auch auf was anderem zum Laufen kriegt, kann er ja hier seine Erfahrungen posten!
Um den Code kompilieren zu können, ist die Unit "SetupApi" aus den Jedis nötig und da musste ich {.DEFINE SETUPAPI_LINKONREQUEST} einstellen um keinen Crash zu verursachen...
Delphi-Quellcode:
Function LoopBackInstalled: Boolean;
Var pDevInfo: HDEVINFO; DevInfoData: SP_DEVINFO_DATA; RegDataType: Cardinal; PropSize: Cardinal; pPropBuffer: PByte; i: Integer; p: PChar; begin Result := FALSE; // Annahme: Nix installiert pDevInfo := SetupDiGetClassDevs(NIL, NIL, 0, DIGCF_ALLCLASSES Or DIGCF_PRESENT); if DWord(pDevInfo) <> INVALID_HANDLE_VALUE then begin // suche nach dem loopback adapter DevInfoData.cbSize := SizeOf(DevInfoData); i := 0; while SetupDiEnumDeviceInfo(pDevInfo, i, DevInfoData) And Not Result Do // schlägt fehl wenn was nicht passt oder i>Devices ist Begin pPropBuffer := NIL; PropSize := 0; // 1. Aufruf um die Buffergröße herauszufinden SetupDiGetDeviceRegistryProperty(pDevInfo, DevInfoData, SPDRP_HARDWAREID, RegDataType, pPropBuffer, PropSize, PropSize); If GetLastError = ERROR_INSUFFICIENT_BUFFER Then Begin GetMem(pPropBuffer, PropSize); // 2. Aufruf um die Daten zu holen If SetupDiGetDeviceRegistryProperty(pDevInfo, DevInfoData, SPDRP_HARDWAREID, RegDataType, pPropBuffer, PropSize, PropSize) Then Begin // ok pPropBuffer durchsuchen ... p := PChar(pPropBuffer); while p^ <> #0 do begin if CompareText(p, '*msloop')=0 then begin Result := TRUE; Break; end; p := p + Length(p)+1; end; End; // Eventuell keine Daten vorhanden ...? FreeMem(pPropBuffer); end; Inc(i); End; SetupDiDestroyDeviceInfoList(pDevInfo); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 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