日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

如何通过 .NETCore 获取 Linux,Mac 的硬件信息?

發(fā)布時間:2023/12/4 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何通过 .NETCore 获取 Linux,Mac 的硬件信息? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

咨詢區(qū)

  • Pascal Jackson

請問我如何通過 .NET Core 去識別 Linux/Mac 電腦上的硬件信息?在 windows 上我可以通過 System.Management 下 WMI Query 很容易獲取,比如下面的代碼:

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

回答區(qū)

  • Barr J

其實很簡單,你可以用 .net core 與它們的 shell 工具交互就可以了。

  • Linux 機器

  • 可以先看看如果用 bash 命令獲取 Process Id, Machine id, version 等等,比如下面這些。

    1.?"LinuxModel":?"cat?/sys/class/dmi/id/product_name" 2.?"LinuxModelVersion":?"cat?/sys/class/dmi/id/product_version" 3.?"LinuxProcessorId":?"dmidecode?-t?processor?|?grep?-E?ID?|?sed?'s/.*:?//'?|?head?-n?1" 4.?"LinuxFirmwareVersion":?"cat?/sys/class/dmi/id/bios_version", 5.?"LinuxMachineId":?"cat?/var/lib/dbus/machine-id"

    接下來寫一個 擴展方法 來搞定。

    public?static?string?Bash(this?string?cmd){string?result?=?String.Empty;try{var?escapedArgs?=?cmd.Replace("\"",?"\\\"");using?(Process?process?=?new?Process()){process.StartInfo?=?new?ProcessStartInfo{FileName?=?"/bin/bash",Arguments?=?$"-c?\"{escapedArgs}\"",RedirectStandardOutput?=?true,UseShellExecute?=?false,CreateNoWindow?=?true,};process.Start();result?=?process.StandardOutput.ReadToEnd();process.WaitForExit(1500);process.Kill();};}catch?(Exception?ex){//Logger.ErrorFormat(ex.Message,?ex);}return?result;}

    然后你就可以這樣使用。

    var?output?=?"ps?aux".Bash();
  • Mac 機器

  • 你可以借助 ManagementClass 類去獲取,參考如下代碼:

    public?static?void?Main(string[]?args){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());}}}

    點評區(qū)

    確實是一個好辦法,在 Linux 上可以和 bash 交互,在 Windows 上也可以同 cmd,powershell 交互,想獲取什么信息就獲取信息,學習了。

    總結

    以上是生活随笔為你收集整理的如何通过 .NETCore 获取 Linux,Mac 的硬件信息?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。