![]() |
Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Hi,
ich suche gerade nach einer Möglichkeit im Netzwerk mögliche MySQL-Server zu finden. Nach Möglichkeit auch ohne User/Pass. Mich interessiert erst mal nicht, ob der Login funktioniert, sondern eigentlich nur die IP-Adresse des Rechners. Bisher ist mir das aber noch nicht gelungen. TZConnection.Ping oder TZConnection.PingServer bringen nur was, wenn dieser Connected ist. Nach Möglichkeit würde ich gerne Zeos verwenden. Wenn es jedoch eine andere Lösung gibt, wird halt die verwendet. |
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Am einfachsten wäre es, wenn der DB-Server auch einen UDP-Broadcast reagieren würde, so ala "Hallo, ist da ein MySQL-Server?".
Ganz einfach mit einer TCP-Komponente versuchen den Datenbank-Port auf allen möglichen IPs deines Subnetzes zuzugreifen und zu schauen ob die was sagen. |
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Zitat:
|
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Zitat:
Und...ist ja für die Fragestellung irrelevant, weil theoretisch könnte man ja auch MySQL-Server im WWW suchen. |
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Zitat:
|
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Zitat:
|
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Da ich davon keine Ahnung habe, hab' ich mal meinen Lieblingschatbot gefragt ;-)
Zitat:
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
uses
IdStack; function IsPortOpen(const AHost: string; const APort: Integer): Boolean; var LIdStack: TIdStack; begin LIdStack := TIdStack.Create; try try LIdStack.Connect(AHost, APort); Result := True; except Result := False; end; finally LIdStack.Free; end; end; Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
uses
Winapi.Windows, Winapi.Winnetwk; procedure ListNetworkResources; var NetResource: TNetResource; EnumHandle: THandle; Buffer: array[0..1023] of TNetResource; Entries: DWORD; i: Integer; begin FillChar(NetResource, SizeOf(NetResource), 0); NetResource.dwScope := RESOURCE_GLOBALNET; NetResource.dwType := RESOURCETYPE_ANY; if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @NetResource, EnumHandle) = NO_ERROR then try repeat Entries := DWORD(-1); if WNetEnumResource(EnumHandle, Entries, @Buffer, SizeOf(Buffer)) = NO_ERROR then for i := 0 to Entries - 1 do if Buffer[i].dwDisplayType = RESOURCEDISPLAYTYPE_SERVER then WriteLn(Buffer[i].lpRemoteName); until Entries < DWORD(-1); finally WNetCloseEnum(EnumHandle); end; end; Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
uses
ZConnection; var Connection: TZConnection; begin Connection := TZConnection.Create(nil); try Connection.HostName := 'IhrServer'; // Ersetzen Sie 'IhrServer' durch den tatsächlichen Servernamen Connection.Port := 3306; Connection.Protocol := 'mysql'; Connection.Database := 'IhreDatenbank'; // Ersetzen Sie 'IhreDatenbank' durch den tatsächlichen Datenbanknamen Connection.User := 'IhrBenutzername'; // Ersetzen Sie 'IhrBenutzername' durch den tatsächlichen Benutzernamen Connection.Password := 'IhrPasswort'; // Ersetzen Sie 'IhrPasswort' durch das tatsächliche Passwort Connection.Connect; if Connection.Connected then WriteLn('Verbindung erfolgreich') else WriteLn('Verbindung fehlgeschlagen'); finally Connection.Free; end; end; Zitat:
|
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Stimmt, man könnte auch einfach irgendwelche Dummyzugangsdaten bei seiner DBConnection angeben und dann auf den Fehler "ungültiger name/passwort" reagieren. (alternativ Timeout ... und blind drauf hoffen, dass diese "Zugangsdaten" wirklich niemand so benutzt)
|
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Zitat:
![]() |
AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Natürlich nicht im Internet,
aber im Intranet, bei eigenen Servern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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