Rechner suchen

Alles rund um die Programmierung mit Qt
Antworten
Erni35
Beiträge: 15
Registriert: 21. Juli 2009 21:49

Rechner suchen

Beitrag von Erni35 »

Hallo und guten Morgen,

ich komme von Delphi (ein langer Weg...) und arbeite mich derzeit in Qt ein. Leider finde ich kein Widget für die Suche nach Rechnern im lokalen Netz. Diese Komponente gibt es unter Delphi und ich benötige die Funktionalität.
Zumindest möchte ich die Rechner im lokalen Netz anzeigen, auf denen ein mySQL-Server läuft.

Könnt ihr helfen?

Cheers,
Erni35
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Beitrag von pfid »

Für Mailserver nehme ich Q3Dns, das könntest du dir evtl mal anschauen, vielleicht hilft dir das ja weiter.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was bringt diese Funktion wirklich? Denn wenn du einen Rechner gefunden hast, weist du noch nicht, auf welchem Port, mit welchem User und Passwort welches Schema verfügbar ist. Also ist sowieso eine Benutzereingabe erforderlich.

Ansonsten mit QNetworkInterface::addressEntries () alle Verfügbaren Netzwerke ermitteln. Mit QNetworkAddressEntry::netmask() die verfügbaren Bereiche. Und mit QTcpSocket versuchen auf Port 3306(?!) eine Verbindung aufzubauen.

Ein ping ist mit Qt selbst nicht möglich, da das Programm dazu Super-User-Rechte benötigt.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

"Rechner finden" geht eigentlich nur mit bestimmten protokollen, bzw protokollerweiterungen.

Nen Standard TCP/IP system kann sowas gar ned ....
das was du bei windows siehst, ist ein Aufsatz(SMB / Netbios nen eigenes Protokoll, was ueber tcp/ip getunnelt wird) der Dir das ermöglich.
Linux / Macs fahren das zeugs standardmaessig gar ned. Das heisst in nem Netzwerk mit reinen TCP/IP servern/Clients wirst die nicht finden. Du wirst nur die finden, die dir das bereitstellen (Samba server z.b.)

Also nen reinen decidierten server fuer mysql wuerdest so nie finden, sei denn er laeuft unter windows und hat netzwerk freigaben, bzw den freigabedienst aktiviert.

QT beitet dir da auch wenig unterstuetzung an, da das alles andere als plattform unabhaengig ist. In windows ist das tief im system verankert ... da kommst mit der WINAPI direkt drauf. Unter linux muesstest dich umschauen, ob es libs mit smb(samba)/browser unterstuetzung gibt, die dir da unter die arme greifen. glaub ned das die qt da was hat.

was du machen koenntest, speziell um mysql server zu finden:
nimm mal telnet und frage damit auf deinem mysql server auf dem mysql port an .... der sollte dir da mit nem bestimmten "muster" antworten.
bau dir was was die antwort checkt auf textebene und damit erkennst ob das ne antwort von nem mysql server ist .....
so kannst erst mal checken ob nen server / port reagiert (online ist) und obs sich um nen mysqlserver handelt.
dann liesst aus deinem rechnereinstellungen die IP und netmask aus ... und checkst erst mal ob der rechner da ist (ping vielleicht)
Dann legst nen Port bereich fest (und gute idee waer den standardport von mysql -- 3306 -- vorrangig zu checken) und checkst bei allen rechnern die sich im vorherigen test gemeldet haben, den completten portbereich ab ob die nen mysql server haben ....
Und wichtig, mach das moderat, also lass dir zeit ^^ und und leg das Netzwerk ned lahm damit, sonst musst vor dem netzwerkadmin fluechten :-)

Das waer wenn du generell mysql server checken willst ....

wenn du die server unter kontrolle hasst, kannst du auch selber was implementieren, nen daemon z.b. der die mysql.conf ausliesst, und nach start der mysql server die daten an ne zentrale stelle verschickt, oder broadcastet .... und die dinger irgendwo zentral verwaltet werden.
der zentrale server kann auch selber checken, ob die server noch am leben sind.

Oder du laesst dem in regelmaessigen intervallen broadcasten, solange der server lebt /bzw die mysqlserver laufen. dann kannst dir die zentrale stelle schenken.

Ist zwar mehr aufwand, dafuer aber sicherer, und du spammst das netzwerk nicht, was dir der admin sicher danken wuerde ^^

Ciao ...
Erni35
Beiträge: 15
Registriert: 21. Juli 2009 21:49

Danke

Beitrag von Erni35 »

Ich danke euch erstmal recht herzlich und liege noch eine Weile auf dem Rücken um nach Luft zu ringen. Das so eine einfache Aufgabe (im Thunar etc. nur das NEtzwerk durchsuchen) so schwierig und vielschichtig ist, habe ich mir nicht gedacht. Aber dafür kann man euch ja fragen. Ich durchdenke erstmal eure Infos und probiere dann mein Netzwerk lahmzulegen.

Erni35
Antworten