Autor Beitrag
renekr
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

Win 2000 ,Win XP, Win 7 64Bit
Delphi 2007 Ent,VBA,C#,ASP.net,VS2009Pro,VS2010 RC
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 26.09.07 09:51 
Aha, wieder was gelernt. :zustimm: 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. :lupe:

Fragen mich allerdings, wozu das gut sein soll? Renekr wird wohl ein kleiner Spion sein? :gruebel:

_________________
Das Unsympathische an den Computern ist, dass sie nur ja oder nein sagen können, aber nicht vielleicht.
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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.

user profile iconmexx 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



BeitragVerfasst: Di 09.10.07 12:43 
Hallo,

das gleiche Problem hatte ich bis grade ebenfalls, habe folgende Lösung auf Basis von NetServerEnum gefunden:

ausblenden 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(nil100, 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



BeitragVerfasst: 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)?