Как определить аппаратные детали компьютера Linux / Mac с помощью .Net Core - PullRequest
0 голосов
/ 28 ноября 2018

Как определить аппаратные детали компьютера Linux / Mac с помощью .Net Core.

Для машин с Windows мы можем использовать System.Management и WMI Query.

Таким образом, существует ли аналогичный способ определения аппаратных деталей (таких как RAM, процессор, монитор, CAM и т. Д.) Linuxи машины Mac.

Для Windows я использую:

ManagementObjectSearcher searcher = 
    new ManagementObjectSearcher("select * from Win32_Processor");

1 Ответ

0 голосов
/ 28 ноября 2018

Это фрагмент кода для написания комментариев bash linux в ядре .net:

using System;
using System.Diagnostics;
    public static class ShellHelper
    {
        public static string Bash(this string cmd)
        {
            var escapedArgs = cmd.Replace("\"", "\\\"");

            var process = new Process()
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = "/bin/bash",
                    Arguments = $"-c \"{escapedArgs}\"",
                    RedirectStandardOutput = true,
                    UseShellExecute = false,
                    CreateNoWindow = true,
                }
            };
            process.Start();
            string result = process.StandardOutput.ReadToEnd();
            process.WaitForExit();
            return result;
        }
    }

Это метод расширения, вы можете использовать его следующим образом:

var output = "ps aux".Bash();

Что касается комментариев, обратитесь к статье Получить сведения о системе и оборудовании Linux в командной строке , посвященной VITUX, чтобы помочь вам написать комментарии, в ней перечислены большинство рекомендаций для сбора системной информации в Linux.


Для MAC :

System.Management.ManagementClass mc = default(System.Management.ManagementClass);
ManagementObject mo = default(ManagementObject);
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc = mc.GetInstances();
    foreach (var mo in moc) {
        if (mo.Item("IPEnabled") == true) {
              Adapter.Items.Add("MAC " + mo.Item("MacAddress").ToString());
         }
     }
...