AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Suche nach MySQL im Netzwerk (bevorzugt Zeos)
Thema durchsuchen
Ansicht
Themen-Optionen

Suche nach MySQL im Netzwerk (bevorzugt Zeos)

Ein Thema von Hobbycoder · begonnen am 29. Jan 2024 · letzter Beitrag vom 30. Jan 2024
Antwort Antwort
Seite 1 von 2  1 2      
Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#1

Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 15:47
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 15:54
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.389 Beiträge
 
Delphi 12 Athens
 
#3

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 16:00
Zitat:
im Netzwerk mögliche MySQL-Server
...auch das WWW ist ein Netzwerk. Spezifiziere "Netzwerk"...
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
961 Beiträge
 
#4

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 16:15
Zitat:
im Netzwerk mögliche MySQL-Server
...auch das WWW ist ein Netzwerk. Spezifiziere "Netzwerk"...
Du hast zwar recht, jedoch wenn man von "im Netzwerk" spricht, meint man eigentlich immer das LAN
Und...ist ja für die Fragestellung irrelevant, weil theoretisch könnte man ja auch MySQL-Server im WWW suchen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#5

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 16:16
Zitat:
im Netzwerk mögliche MySQL-Server
...auch das WWW ist ein Netzwerk. Spezifiziere "Netzwerk"...
dafür gibt es dann shodan.io
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#6

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 16:20
Du hast zwar recht, jedoch wenn man von "im Netzwerk" spricht, meint man eigentlich immer das LAN
Und...ist ja für die Fragestellung irrelevant, weil theoretisch könnte man ja auch MySQL-Server im WWW suchen.
Alle IP-Adressen im LAN mit Netstat auf TCP 3306 abgrasen und schauen, ob da was lauscht.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#7

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 16:24
Da ich davon keine Ahnung habe, hab' ich mal meinen Lieblingschatbot gefragt
Zitat von Frage:
Wie kann man in einem Netzwerk MySQL-Server finden?
Zitat von ChatBot:
Um einen MySQL-Server in einem Netzwerk zu finden, können Sie folgende Schritte ausführen:

1. **Konfigurieren Sie den SQL-Dienst**: Starten Sie den SQL Server Konfigurations-Manager Ihres SQL-Servers über das Windows Startmenü². Stellen Sie sicher, dass im Reiter "Protokoll" bei "aktiviert" "Ja" eingestellt ist². Vergeben Sie im Reiter IP-Adressen ganz unten bei "IPAll" einen festen Port².

2. **Firewall-Freigaben erstellen**: Damit der SQL Server von anderen PCs im Netzwerk aus erreichbar ist, müssen einige Ports freigegeben werden². Geben Sie den TCP-Port 1433 sowie den im vorigen Abschnitt eingestellten festen Port ein².

3. **MySQL-Server starten**: Ein MySQL-Server hört auf den Port TCP 3306¹. Wenn netstat diesen Port nicht aufführt, läuft der MySQL-Server nicht¹. Das Control Panel von XAMPP sollte das eigentlich auch anzeigen¹.

4. **Zugriff erlauben**: Wenn der MySQL-Server läuft, wird der Zugriff ggf. durch die Windows-Firewall geblockt¹. Da müssen Sie den Zugriff von außen dann genehmigen¹.

Bitte beachten Sie, dass Sie während der Konfiguration des SQL Servers den SQL Server-Dienst neu starten müssen, damit die Einstellungen wirksam werden². Während des Neustarts dürfen keine Clients (Wawi, LS-POS, ...) mit der Datenbank verbunden sein, da sonst Datenverlust droht².

Quelle: Unterhaltung mit Bing, 29.1.2024
(1) SQL-Datenbank im Netzwerk verwenden - luwosoft-support.de. https://www.luwosoft-support.de/6419...werk-verwenden.
(2) MySQL Server im lokalen Netzwerk erreichen. Wie? - Gutefrage. https://www.gutefrage.net/frage/mysq...-erreichen-wie.
(3) Wie kann ich mich von meinem Rechner mit einem MySQL-Server verbinden?. https://www.variomedia.de/faq/Wie-ka...en/article/244.
Zitat von Frage:
Welche Windows-API muss ich in Delphi nutzen um zu erfahren, welcher Server im Netz auf dem Port 3306 und / oder dem Port 1433 lauscht?
Zitat von ChatBot:
Um herauszufinden, welcher Server in einem Netzwerk auf den Ports 3306 (MySQL) und/oder 1433 (SQL Server) lauscht, können Sie die Windows Sockets API (Winsock) verwenden. In Delphi können Sie die `TIdStack`-Klasse aus der Indy-Bibliothek verwenden, die eine High-Level-Abstraktion für Netzwerkoperationen bietet.

Hier ist ein einfacher Codeausschnitt, der zeigt, wie Sie einen offenen Port auf einem bestimmten Host überprüfen können:
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 von ChatBot:
In diesem Code wird versucht, eine Verbindung zum angegebenen Host und Port herzustellen. Wenn die Verbindung erfolgreich ist, gibt die Funktion `True` zurück, was bedeutet, dass der Port offen ist. Andernfalls gibt die Funktion `False` zurück.

Bitte beachten Sie, dass dieser Code nur überprüft, ob ein Port offen ist. Es kann nicht bestimmen, welcher Dienst (z.B. MySQL oder SQL Server) auf diesem Port läuft. Um den spezifischen Dienst zu ermitteln, der auf einem Port läuft, müssten Sie eine tiefere Inspektion des Netzwerkverkehrs durchführen, was normalerweise über den Anwendungslayer hinausgeht¹².

Quelle: Unterhaltung mit Bing, 29.1.2024
(1) Where can I find Delphi Declarations for Windows API calls?. https://stackoverflow.com/questions/...dows-api-calls.
(2) Can we call Native Windows API from Delphi? - Stack Overflow. https://stackoverflow.com/questions/...pi-from-delphi.
(3) 3 Programmierung der seriellen Schnittstelle - Elektronik-Labor. https://www.elektronik-labor.de/RS232/RS232_3_4.htm.
(4) Herstellen einer Verbindung zu MySQL Server (FireDAC). https://docwiki.embarcadero.com/RADS..._%28FireDAC%29.
(5) TMS WEB Core: Entwicklung von Webanwendungen mit Delphi. https://learndelphi.org/de/tms-web-c...t-with-delphi/.
Zitat von Frage:
Welche Windows-API muss ich mit Delphi nutzen um zu erfahren welche Server im Netzwerk verfügbar sind?
Zitat von ChatBot:
Um herauszufinden, welche Server in einem Netzwerk verfügbar sind, können Sie die Windows Networking API (WNet) verwenden. In Delphi können Sie die Funktionen `WNetOpenEnum`, `WNetEnumResource` und `WNetCloseEnum` verwenden, um durch die verfügbaren Netzwerkressourcen zu iterieren¹.

Hier ist ein einfacher Codeausschnitt, der zeigt, wie Sie die verfügbaren Netzwerkressourcen auflisten können:
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 von ChatBot:
In diesem Code wird die Funktion `WNetOpenEnum` verwendet, um einen Enumerator für Netzwerkressourcen zu erstellen. Dann wird `WNetEnumResource` in einer Schleife aufgerufen, um die Ressourcen einzeln abzurufen. Jede Ressource, die als Server angezeigt wird (d.h., `dwDisplayType` ist `RESOURCEDISPLAYTYPE_SERVER`), wird dann auf der Konsole ausgegeben¹.

Bitte beachten Sie, dass dieser Code nur die Namen der verfügbaren Server auflistet. Es kann nicht bestimmen, welche Dienste auf diesen Servern laufen¹².

Quelle: Unterhaltung mit Bing, 29.1.2024
(1) Delphi WinAPI verfügbare Domains auflisten - Delphi-PRAXiS. https://www.delphipraxis.net/204432-...auflisten.html.
(2) Where can I find Delphi Declarations for Windows API calls?. https://stackoverflow.com/questions/...dows-api-calls.
(3) Can we call Native Windows API from Delphi? - Stack Overflow. https://stackoverflow.com/questions/...pi-from-delphi.
(4) undefined. http://www.delphigroups.info/2/72/169815.html.
Zitat von Frage:
Wie kann ich in Delphi, unter Nutzung der Zeos-Bibliothek, prüfen ob auf einem Server eine MySQL-Datenbank zur Verfügung steht?
Zitat von ChatBot:
Um zu überprüfen, ob eine MySQL-Datenbank auf einem Server verfügbar ist, können Sie die Zeos-Bibliothek in Delphi verwenden. Sie können eine Verbindung zur Datenbank herstellen und dann überprüfen, ob die Verbindung erfolgreich war. Hier ist ein einfacher Codeausschnitt, der zeigt, wie Sie das tun können:
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 von ChatBot:
In diesem Code wird versucht, eine Verbindung zur angegebenen MySQL-Datenbank auf dem angegebenen Server herzustellen. Wenn die Verbindung erfolgreich ist, gibt der Code "Verbindung erfolgreich" aus. Andernfalls gibt er "Verbindung fehlgeschlagen" aus¹².

Bitte beachten Sie, dass Sie die entsprechenden Werte für `IhrServer`, `IhreDatenbank`, `IhrBenutzername` und `IhrPasswort` durch die tatsächlichen Werte ersetzen müssen¹².

Quelle: Unterhaltung mit Bing, 29.1.2024
(1) MySQL mit ZeosLib - Delphi-Treff. https://www.delphi-treff.de/tutorial...l-mit-zeoslib/.
(2) MYSQL Abfrage mit ZEOS? Datensatz vorhanden? - Delphi-PRAXiS. https://www.delphipraxis.net/43731-m...vorhanden.html.
(3) Delphi Mysql Datenbank erzeugen mit Zeos - Delphi-PRAXiS. https://www.delphipraxis.net/50698-m...-mit-zeos.html.
Eventuell kannst Du Dir daraus ja was brauchbares zusammenbauen. Vom Prinzip, denkt ich, müsste alles Wesentliche dabei sein.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 16:48
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)
$2B or not $2B
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
170 Beiträge
 
#9

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 17:07
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)
Gute Idee. Sind schon andere für Weniger vor Gericht gelandet.

https://www.heise.de/news/Warum-ein-...e-9601392.html
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Suche nach MySQL im Netzwerk (bevorzugt Zeos)

  Alt 29. Jan 2024, 17:26
Natürlich nicht im Internet,
aber im Intranet, bei eigenen Servern.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz