Announcement

Collapse
No announcement yet.

Computer/Server im lokalen Netzwerk ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Computer/Server im lokalen Netzwerk ermitteln

    Hallo NG<BR>
    <BR>
    Ich möchte alle Server, welche im Netzwerk erreichbar sind, ermitteln und anzeigen können.<BR>
    Kann mir dazu jemand helfen?<BR>
    <BR>
    <BR>
    Besten Dank und Grüsse<BR>
    Yvan

  • #2
    Hallo,

    Kann mir wirklich niemand weiterhelfen. Es geht darum, dem User eine Auswahl von SQL-Servern zu ermöglichen, bevor er auf diesen zugreiffen kann.

    Besten Dank für Ansätz

    Comment


    • #3
      Fall Du etwas Delphi kannst, so kannst Du die beiden Lösungsmöglichkeiten (SQLDMO oder Zugriff über NetServerEnum auch in .NET/C# nachbilden (http://www.entwickler-forum.de/webx?128@@.ee8e10e)

      SQLDMO wird vermutlich einfacher zu realisieren sein, muß aber u.U. installiert werden

      Comment


      • #4
        Hi,

        du findest auf CodeProject oder SourceForge Artikel dazu. Im DotNetPro Magazin war vor kurzem ein Beispiel in VB.NET drin. Ich habe mir vor längerer Zeit mal kurz eine Network Browser Klasse gebaut (Net.api) wenn du willst kann ich dir die Sourcen zusenden. Poste einfach deine Email Adresse oder schick mir eine zu ([email protected]

        Comment


        • #5
          Hallo,

          das folgende Beispiel demonstriert den SQLMDO-Weg in C#:
          <pre>
          <font color="#003399"><i>// Solution Explorer | References | Add Reference... </i></font>
          <font color="#003399"><i>// a) Registerseite COM auswählen</i></font>
          <font color="#003399"><i>// b) Eintrag &quot;Microsoft SQLDMO Object Libary&quot; auswählen</i></font>

          <b>private</b> <b>void</b> button1_Click(<b>object</b> sender, System.EventArgs e)
          {
          SQLDMO.Application aSQLApp = <b>new</b> SQLDMO.ApplicationClass();
          SQLDMO.NameList aNL = aSQLApp.ListAvailableSQLServers();
          <b>foreach</b> (<b>string</b> sName <b>in</b> aNL)
          {
          <b>this</b>.listBox1.Items.Add(sName);
          }
          }
          </pre&gt

          Comment


          • #6
            Besten Dank für eure Unterstützung

            Comment


            • #7
              Hallo Andreas,

              gesagt getan - bekomme aber folgende Fehlermeldung:

              Eine nicht behandelte Ausnahme des Typs 'System.InvalidCastException' ist in ShopInfo.exe aufgetreten.

              Zusätzliche Informationen: QueryInterface für Schnittstelle SQLDMO.NameList fehlgeschlagen.

              Wo muss ich suchen?

              Danke

              Ren

              Comment


              • #8
                Hallo, ich suche alle verfügbare SQLServers im LAN folgenderweise (ohne SQLDMO) : <BR>
                <p style="FONT-FAMILY: Tahoma, Arial; FONT-SIZE: 10">
                SqlDataAdapter da; <br>
                da = new SqlDataAdapter();<br>
                string lictype = "LicenseType = (case SERVERPROPERTY('LicenseType') " + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"When 'PER_SEAT' THEN 'Per-seat mode' " + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"WHEN 'PER_PROCESSOR' THEN 'Per-procesor mode' " + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"WHEN 'DISABLED' THEN 'Licensing is disabled' " + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"ELSE SERVERPROPERTY('LicenseType') " + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"END), "<br>
                string cmd = "Select SERVERPROPERTY('Collation') AS COLLATION, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('Edition') AS EDITION, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('Engine Edition') AS ENGINE_EDITION , " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('InstanceName' ) AS InstanceName, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('IsClustered' ) AS IsClustered, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('IsFullTextIns talled') AS IsFullTextInstalled , " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('IsIntegratedS ecurityOnly') AS IsIntegratedSecurityOnly , " + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('IsSingleUser' ) AS IsSingleUser, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('IsSyncWithBac kup') AS IsSyncWithBackup , " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;lictype + <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('MachineName' ) AS MachineName, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('NumLicenses' ) AS NumLicenses, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('ProcessID') AS ProcessID , " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('ProductVersio n') AS ProductVersion, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('ProductLevel' ) AS ProductLevel, " +<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;"SERVERPROPERTY('ServerName') AS ServerName";<br>
                da.SelectCommand = new SqlCommand(cmd,DBConn);<br>
                da.Fill(ServerProp)<br>
                DBConn.Close();<br>
                </p&gt

                Comment


                • #9
                  Hallo,
                  es geht auch ohne SQLDMO.
                  <p style="FONT-FAMILY: Courier; FONT-SIZE: 8pt">
                  [StructLayout(LayoutKind.Sequential)]<br>
                  <B>public unsafe struct TSERVER_INFO_100</B><br>
                  {<br>
                  &nbsp;&nbsp;public uint sv100_platform_id; <br>
                  &nbsp;&nbsp;public IntPtr sv100_name;<br>
                  }<br>
                  <br>
                  [DllImport("Netapi32.dll")]<BR>
                  <B>public static extern int NetServerEnum</B>(<BR>
                  &nbsp;&nbsp;uint servername,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp; //Reserved; must be NULL <BR>
                  &nbsp;&nbsp;uint level,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//information level of the data <BR>
                  &nbsp;&nbsp;ref int bufptr,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;//Pointer to the buffer that receives the data<BR>
                  &nbsp;&nbsp;int prefmaxlen,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;//maximum length of returned data, in bytes;MAX_PREFERRED_LENGTH=-1<BR>
                  &nbsp;&nbsp;ref uint entriesread,&nbsp;&nbsp;&nbsp;&nbsp;//count of elements actually enumerated<BR>
                  &nbsp;&nbsp;ref uint totalentries,&nbsp;&nbsp; //total number of visible servers and workstations on the network<BR>
                  &nbsp;&nbsp;uint servertype,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp; //Any server running with Microsoft SQL Server (SV_TYPE_SQLSERVER = 4)<BR>
                  &nbsp;&nbsp;uint domain,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //If this parameter is NULL, the primary domain is implied<BR>
                  &nbsp;&nbsp;ref uint resume_handle); // Reserved; must be set to zero<BR>
                  <BR>
                  [DllImport("Netapi32.dll")]<BR>
                  <B>public static extern int NetApiBufferFree</B>(int Buffer);<BR>
                  <BR>
                  ....
                  <BR>
                  unsafe private void button2_Click(object sender, System.EventArgs e)<br>
                  {<br>
                  &nbsp;&nbsp;uint numentries = 0;<br>
                  &nbsp;&nbsp;uint numsrvs = 0;<br>
                  &nbsp;&nbsp;uint reshandle = 0;<br>
                  &nbsp;&nbsp;int buff = 0;<br>
                  &nbsp;&nbsp;if(NetServerEnum(0,100,ref buff,-1,ref numentries,ref numsrvs,4,0,ref reshandle)==0)<br>
                  &nbsp;&nbsp;{<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;for(int i = 0;i < numentries;i++)<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;{<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff+= sizeof(TSERVER_INFO_100) * i;<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IntPtr m = ((TSERVER_INFO_100*)buff)->sv100_name;<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string n = (string)Marshal.PtrToStringAuto(m);<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Sho w("Servername: " + n);<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;}<br>
                  &nbsp;&nbsp;&nbsp;&nbsp;NetApiBufferFree(buff);<br >
                  &nbsp;&nbsp;}<br>
                  }<br>

                  </p&gt

                  Comment

                  Working...
                  X