Laden...

netzwerktool - getusername ?

Erstellt von hard_42 vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.359 Views
H
hard_42 Themenstarter:in
9 Beiträge seit 2007
vor 17 Jahren
netzwerktool - getusername ?

Hallo Community,

Ich wüde gern ein kleines Tool erstellen,
welches mir verschiedene Auswertungen von meinem Privaten Netzwerk liefert.

Ins Programm soll implementiert werden :
Welche PCs sind Online ?
Ausgabe : PC von ... Online

So jetzt, wie gehe ich vor ?

Ich muss ja irgendwie testen, ob der Rechner "Online" ist - dachte an einen Ping ?
Dann muss ich den User Namen auslesen, in VB war mal was mit getusername - ist das in c# auch möglich ?

Soweit erstmal, bin für jeden Tipp/Link dankbar.

Grüße
hardy

P
554 Beiträge seit 2005
vor 17 Jahren

Achtung! - Hinter dir ist ein dreiköpfiger Affe!

C
1.215 Beiträge seit 2004
vor 17 Jahren

Angemeldete Benutzer erhälst Du über API Call NetWkstaUserEnum (netapi32).

Grüsse

H
hard_42 Themenstarter:in
9 Beiträge seit 2007
vor 17 Jahren

Ich habe mich erstmal darauf konzentriert, meine Lokalen Informationen zu bekommen

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
using System.Diagnostics;
using System.Resources;

namespace Netzwerk_Tool
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string userName = System.Environment.UserName;
        string machineName = System.Environment.MachineName;

        private string MyIP
        {
         get
          {
           return System.Net.Dns.GetHostByName(
           System.Net.Dns.GetHostName()).AddressList[0].ToString();
          }

Klappt soweit auch, wie gehe ich nun aber weiter voran, das er mir das Netzwerk nach PC durchsucht und mir diese Auflistet ?

grüße,
hardy

C
1.215 Beiträge seit 2004
vor 17 Jahren

using System.DirectoryServices;
...
DirectoryEntry root = new DirectoryEntry("WinNT://");
root.Children.SchemaFilter.Add("Domain");
foreach (DirectoryEntry domain in root.Children)
{
    Console.WriteLine(domain.Name.ToUpper());
    domain.Children.SchemaFilter.Add("Computer");
    foreach (DirectoryEntry host in domain.Children)
        Console.WriteLine("* " + host.Name);
    Console.WriteLine();
}

Ist nicht getestet, sollte aber so hinhauen.
Voraussetzung ist ein Verzeichnisdienstanbieter (z. B. PDC) im Netz - ggf. das Protokoll ändern (z. B. LDAP://).

Grüsse