Entwickler-Ecke
Internet / Netzwerk - Test ob Proxy-Server unter WindowsXP
kiwicht - Fr 21.02.03 13:33
Titel: Test ob Proxy-Server unter WindowsXP
Hallo da draussen....
mit folgender Funktion ist es ja möglich, rauszukriegen ob mein System hinter einem Proxy sitzt, indem es in der Registry den entsprechenden Wert abfragt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| Result := ctNone; Reg := TRegistry.Create; with REG do try try RootKey := HKEY_CURRENT_USER; if OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet settings', false) then begin if GetDataType('ProxyEnable') = rdBinary then ReadBinaryData('ProxyEnable', UseProxy, SizeOf(LongWord)) else begin bUseProxy := ReadBool('ProxyEnable'); if bUseProxy then UseProxy := 1 else UseProxy := 0; end; if (UseProxy<>0) and (ReadString('ProxyServer')<>'' ) then Result := ctProxy; end; except end; finally Free; end; if Result = ctNone then begin if RasConnectionCount > 0 then Result := ctDialup; end; |
Nun ist es aber so, das ich unter Windows XP (und 2000 glaub ich auch), mir diesen Wert insofern sparen kann, da ich unter diesen OS´ nicht angebe ob ich eine Proxy benutzte, sondern Windows diesen von selbst findet, was ja eigentlich sehr praktisch ist!
Wie aber finde ich unter solchen Bedingungen heraus, ob ich hinter einem Proxy sitze?
mfg
KiwiCHt..-
BungeeBug - Fr 21.02.03 15:24
soweit ich weis findet auch Win2000 und XP nen Proxy nicht selbst ... das was du meinst is warscheinlich nen Router -> Gateway die werden gefunden nur den Proxy musste wir gehabt selbst eintragen ... aber ich kann mich (was ich nciht glaube) auch irren ... bin also auch gespannt
MfG BungeeBug
bis11 - Fr 21.02.03 16:57
Hi,
man muss die Verbindungsart schon noch selbst angeben. Das was kiwicht meint ist der Haken "Automatische Suche der Einstellungen" unter LAN-Verbindungen. Aber selbst dieser Haken ist in der Registry vorhanden.
Cyrus - Fr 21.02.03 17:02
Hi viellicht hilft das:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| uses WinInet;
const MODEM = 1; LAN = 2; PROXY = 4; BUSY = 8;
function GetConnectionKind(var strKind: string): Boolean; var flags: DWORD; begin strKind := ''; Result := InternetGetConnectedState(@flags, 0); if Result then begin if (flags and MODEM) = MODEM then strKind := 'Modem'; if (flags and LAN) = LAN then strKind := 'LAN'; if (flags and PROXY) = PROXY then strKind := 'Proxy'; if (flags and BUSY) = BUSY then strKind := 'Modem Busy'; end; end;
procedure TForm1.Button1Click(Sender: TObject); var strKind: string; begin if GetConnectionKind(strKind) then ShowMessage(strKind); end |
kiwicht - Mo 24.02.03 09:54
Hallöle...
also bezüglich der Windows-Proxy-Geschichte:
Das läuft ganz automatisch, wenn ich auf meinem WindowsXP-Rechner die i-Net-Verbindung freigebe, erhält dieser ja automatisch die 192.168.0.1 als IP, und die wird von neueren (XP auf jeden Fall, 2k weiss ich nicht genau) OS´s automatisch erstmal als Proxy (bzw. Router, Gatway ;)) gesucht bzw. erkannt. Proxy ist zugegeben eine etwas unglückliche Bezeichnung, hat sich aber so eingebürgert bei mir, sorry.. :roll:
Das Häkchen "automat. Suchen ...." beim inet-Explorer steht in dem Falle tatsächlich für Proxy´s, aber eher für die von 3.-Anbietern. Bei meinen Spielen und Email-Clients gibts so ein Häkchen ja nicht, und die finden die fremde Verbindung trotzdem, weil Windows die Anfragen "intern" weiterleitet...
soviel zur Netzwerk-Theroie... ;) 8)
Der Quelltext funktioniert, rein technisch gesehen, aber er zeigt leider nicht an, das ich im Internet bin, sonder nur: LAN, was natürlich auch stimmt, aber nur die halbe wahrheit ist.
Danke für die Mühen..
mfg
kiwicht
kiwicht - Mi 26.02.03 21:00
hab doch was gefunden, Lösung lag im Grunde ganz nah:
In meinem speziellen Fall suchen sich Windows und die laufenden Programme ja ihre eigene Verbindung, aber halt doch nicht ganz von alleine. Das einzigste was man bei den TCPIP-Einstellung ändern muss, ist der Standard-Gateway. Logisch.
In der Registry ist dieser Wert gespeichert unter:
LOCAL_MACHINE
|_ SYSTEM
|_ ControlSet001
|_ Services
|_ Hash-Wert (bei mir wars gleich der erste
|_TCPIP
||= Key: DefaultGateway
(Stimmt diese Adresse nicht, kann man auch einfach nach Default Gateway oder 192.168.0.1 suchen)
danke für eure Mühen
mfg
kiwicht
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!