Prafulla Sahu Ответов: 2

Найдите имя компьютера,имя операционной системы и MAC - адрес данного IP - адреса с помощью c#


привет ,у меня есть требование,что мне нужно найти имя компьютера, имя операционной системы, MAC-адрес и сетевую роль данного IP-адреса.Я могу найти имя компьютера, но не могу найти MAC-адрес и информацию об операционной системе, поэтому, пожалуйста, посоветуйте мне, как это сделать, заранее спасибо.

С уважением
Прафулла

2 Ответов

Рейтинг:
2

Prasad_Kulkarni

Чтобы получить IP-адрес:

private static string GetIpAddress()
       {
           string strHostName = "";
           strHostName = System.Net.Dns.GetHostName();
           IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
           IPAddress[] addr = ipEntry.AddressList;
           return addr[addr.Length - 1].ToString();
       }



Чтобы получить MAC ID:
private string GetMac()
{
    string Mac = string.Empty;
    ManagementClass MC = new ManagementClass("Win32_NetworkAdapter");
    ManagementObjectCollection MOCol = MC.GetInstances();
    foreach (ManagementObject MO in MOCol)
        if (MO != null)
        {
           if (MO["MacAddress"] != null)
                    {
                         Mac = MO["MACAddress"].ToString();
                         if (Mac != string.Empty)
                             break;
                    }
        }
    return Mac;
}


Чтобы получить операционную систему:
private string GetOSName()
{
    System.OperatingSystem os = System.Environment.OSVersion;
    string osName = "Unknown";


    switch (os.Platform)
    {
        case System.PlatformID.Win32Windows:
            switch (os.Version.Minor)
            {
                case 0:
                    osName = "Windows 95";
                    break;
                case 10:
                    osName = "Windows 98";
                    break;
                case 90:
                    osName = "Windows ME";
                    break;
            }
            break;
        case System.PlatformID.Win32NT:
            switch (os.Version.Major)
            {
                case 3:
                    osName = "Windws NT 3.51";
                    break;
                case 4:
                    osName = "Windows NT 4";
                    break;
                case 5:
                    if (os.Version.Minor == 0)
                        osName = "Windows 2000";
                    else if (os.Version.Minor == 1)
                        osName = "Windows XP";
                    else if (os.Version.Minor == 2)
                        osName = "Windows Server 2003";
                    break;
                case 6:
                    osName = "Windows Vista";
                    break;
            }
            break;
    }

    return osName + ", " + os.Version.ToString();
}

Также сослаться: Название ОС, версия и тип продукта[^]

Чтобы получить имя компьютера:
static string GetName ()
{
   string netBiosName = System.Environment.MachineName;

   //return netBiosName;
   // Following method is deprecated
   // string dnsName =
   //     System.Net.Dns.GetHostByName("LocalHost").HostName;

   string dnsName = System.Net.Dns.GetHostName();
   return dnsName;
}

Также сослаться: Подобная дискуссия[^]

Надеюсь, я ответил на все вопросы, и это помогает!


Prafulla Sahu

Спасибо Вам большое Прасад за ваше решение это полезно для меня,но мое требование немного отличается, значит возьмите один пример у меня есть текстовое поле, и нам нужно ввести один IP-адрес системы среди всех систем(которые подключены в сети(LAN))и на основе этого IP-адреса мы должны найти информацию об ОС и MAC-адрес вы, пожалуйста, поможете мне m запасенный любой совет будет признателен.

Спасибо.

User1454

Господин, хороший explianation....но мне нужно, чтобы получить MAC-адрес виртуальной машины. т. е. в зависимости от IP-адреса. Это просто дает системный mac-адрес. Как получить mac-адрес на основе IP, а также для виртуальных машин.

Member 11699255

в каком пространстве имен я нахожу managenmentclass