Autor |
Beitrag |
renekr
      
Beiträge: 41
Win 2000 ,Win XP, Win 7 64Bit
Delphi 2007 Ent,VBA,C#,ASP.net,VS2009Pro,VS2010 RC
|
Verfasst: Di 25.09.07 18:32
Hallo,
Kennt jemand eine Möglichkeit wie ich das Netzwerk ( Intranet ) scannen kann und die Rechnernamen von SQL Servern rausbekomme ev. als Liste ?
Muss nicht nur mit Delphi sein kann auch per SQL CMD!
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Mi 26.09.07 07:00
Hi,
wie wärs mit dem Enterprise Manager?
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 26.09.07 07:15
Man kann sich die Server auflisten lassen (API-Call). Die Option beinhaltet auch, nur nach MS-SQL-Servern zu suchen.
_________________ Na denn, dann. Bis dann, denn.
|
|
mexx
      
Beiträge: 1183
|
Verfasst: Mi 26.09.07 09:38
Es gibt Port-Scanner, die das Netzwerk nach verfügbaren Ports auf anderen Rechner scannen. Der SQL Server benutz/öffnet mit Sicherheit einen Default-Port. Nachdem kannst Du dann mit dem Port-Scanner suchen. Ich kann Dir leider keine Software nennen. Nutze selbst keine Port-Scanner. Halte das für Hacking-Software. Belastet auch nur unnötig den Traffic in einen Netzwerk.
_________________ Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 26.09.07 09:45
@mexx: Klappt nur, wenn der SQL-Server die TCP/IP-Library verwendet, sonst nicht.
Microsoft selbst verwendet die 'NetServerEnum' Funktion mit dem Parameter 'SV_TYP_SQLSERVER'. Einfach mal in die OH schauen
_________________ Na denn, dann. Bis dann, denn.
|
|
mexx
      
Beiträge: 1183
|
Verfasst: Mi 26.09.07 09:51
Aha, wieder was gelernt.  Ich arbeite primär mit FireBird, daher meine Vermutung mit dem Port. Vielleicht gibt es ein Tool von Mircosoft, was diesen Scan durchführen kann.
Fragen mich allerdings, wozu das gut sein soll? Renekr wird wohl ein kleiner Spion sein? 
_________________ Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Mi 26.09.07 09:56
Wenn Du z.B. eine SQL-Manager schreiben willst, oder dem Anwender in einem Konfigurationsdialog den SQL-Server auswählen lässt, ist sowas natürlich sehr komfortabel.
mexx hat folgendes geschrieben: | Vielleicht gibt es ein Tool von Mircosoft, was diesen Scan durchführen kann. |
Jaha, die API-Funktion "NetServerEnum".
_________________ Na denn, dann. Bis dann, denn.
|
|
Herby99
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 09.10.07 12:43
Hallo,
das gleiche Problem hatte ich bis grade ebenfalls, habe folgende Lösung auf Basis von NetServerEnum gefunden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.cmdUpdateClick(Sender: TObject); var read, total: Integer; buf: Pointer; tmpbuf: PSERVER_INFO_100; i: integer; NIL_HANDLE : Integer; begin ComboBox1.Items.BeginUpdate; ComboBox1.Clear; NetServerEnum(nil, 100, buf, -1, read, total, SV_TYPE_SQLSERVER, nil, NIL_HANDLE); tmpbuf := PSERVER_INFO_100(buf); for i:= 1 to read do begin ComboBox1.Items.Add(WideCharToString(tmpbuf^.sv100_name)); inc(tmpbuf); end; ComboBox1.Items.EndUpdate; if ComboBox1.Items.Count > 0 then ComboBox1.ItemIndex := 0; NetApiBufferFree(buf);
end; |
Benötigt wird zudem noch die Unit unetmsg.pas (im Anhang).
Einloggen, um Attachments anzusehen!
|
|
Herby99
Hält's aus hier
Beiträge: 6
|
Verfasst: Di 09.10.07 14:41
Wo wir grade dabei sind, gibt es eine einfache Möglichkeit, sich alle Datenbanken eines Servers anzeigen zu lassen, falls der Zugriff gewährt wird (z.B. über Windows-Authentifizierung)?
|
|
|