最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#獲取電腦網(wǎng)卡MAC地址的方法詳解

 更新時間:2026年04月22日 08:34:44   作者:加號3  
MAC地址是網(wǎng)絡接口的物理地址,由48位二進制數(shù)組成,通常表示為6組十六進制數(shù),本文將詳細介紹在C#中如何獲取電腦MAC地址的方法,包含完整代碼示例和實際開發(fā)中的注意事項,需要的朋友可以參考下

本文將詳細介紹在C#中如何獲取電腦MAC地址的方法,包含完整代碼示例和實際開發(fā)中的注意事項。

一、什么是MAC地址

MAC地址(Media Access Control Address)是網(wǎng)絡接口的物理地址,由48位二進制數(shù)組成,通常表示為6組十六進制數(shù)(如 00:1A:2B:3C:4D:5E)。每個網(wǎng)卡出廠時都被分配了全球唯一的MAC地址,常用于設備識別、網(wǎng)絡管理和安全認證等場景。

二、推薦方案:使用 NetworkInterface 類

.NET Framework 提供了 System.Net.NetworkInformation 命名空間,這是獲取MAC地址最標準、跨平臺兼容性最好的方式

2.1 獲取電腦可用網(wǎng)卡MAC地址

/// <summary>
/// 獲取電腦MAC地址
/// </summary>
/// <returns></returns>
public static List<string> GetMacByWmi()
{
    string key = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\";
    List<string> macList = new List<string>();
    try
    {
        NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
        foreach (NetworkInterface adapter in nics)
        {
            if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet && adapter.GetPhysicalAddress().ToString().Length != 0)
            {
                string fRegistryKey = key + adapter.Id + "\\Connection";
                RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false);
                if (rk != null)
                {
                    //string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString();
                    //if (fPnpInstanceID.Length > 3 && fPnpInstanceID.Substring(0, 3) == "PCI")
                    {
                        string macAddress = adapter.GetPhysicalAddress().ToString();
                        for (int i = 1; i < 6; i++)
                        {
                            macAddress = macAddress.Insert(3 * i - 1, "-");
                        }
                        macList.Add(macAddress);
                        //break;
                    }
                }
            }
        }
    }
    catch (Exception ex)
    {
    }
    return macList;
}

2.2 調(diào)試結(jié)果

2.3 常見網(wǎng)卡類型枚舉

類型說明
Ethernet有線以太網(wǎng)
Wireless80211WiFi無線網(wǎng)卡
Loopback本地回環(huán)接口
Tunnel虛擬隧道接口

三、常見問題與注意事項

3.1 虛擬網(wǎng)卡過濾

現(xiàn)代電腦常有多個虛擬網(wǎng)卡(VMware、VirtualBox、VPN等),建議過濾掉這些以獲取真實物理網(wǎng)卡

// 排除虛擬網(wǎng)卡的關鍵字
string[] virtualKeywords = {
    "virtual", "vmware", "hyper-v", "virtualbox", 
    "vpn", "tunnel", "tap-windows", "wireguard"
};

3.2 MAC地址格式轉(zhuǎn)換

// 原始格式: 001A2B3C4D5E
string raw = "001A2B3C4D5E";

// 轉(zhuǎn)換為冒號格式: 00:1A:2B:3C:4D:5E
string colon = string.Join(":", Enumerable.Range(0, 6)
    .Select(i => raw.Substring(i * 2, 2)));

// 轉(zhuǎn)換為連字符格式: 00-1A-2B-3C-4D-5E
string hyphen = string.Join("-", Enumerable.Range(0, 6)
    .Select(i => raw.Substring(i * 2, 2)));

3.3 權限問題

在普通用戶權限下通??梢哉+@取MAC地址
某些企業(yè)環(huán)境或安全軟件可能限制訪問,建議添加異常處理

3.4 多網(wǎng)卡環(huán)境

筆記本電腦通常同時具有有線和無線網(wǎng)卡,建議:

  • 優(yōu)先選擇 OperationalStatus.Up 的網(wǎng)卡
  • 按連接速度排序,選擇最快的網(wǎng)卡
  • 排除Loopback和虛擬網(wǎng)卡

四、總結(jié)

在大多數(shù)場景下,推薦使用 NetworkInterface 類獲取MAC地址,它簡單、可靠且跨平臺兼容。

到此這篇關于C#獲取電腦網(wǎng)卡MAC地址的方法詳解的文章就介紹到這了,更多相關C#獲取電腦網(wǎng)卡MAC地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 通過C#獲取Excel單元格的數(shù)據(jù)類型的方法詳解

    通過C#獲取Excel單元格的數(shù)據(jù)類型的方法詳解

    在處理 Excel 文件時,了解單元格的數(shù)據(jù)類型有助于我們正確地解析和處理數(shù)據(jù),本文將詳細介紹如何使用 Free Spire.XLS 來獲取 Excel 單元格的數(shù)據(jù)類型,幫助開發(fā)者精準地識別數(shù)據(jù)類型,確保數(shù)據(jù)處理的準確性,需要的朋友可以參考下
    2025-05-05
  • C#實現(xiàn)MQTT服務端與客戶端通訊功能

    C#實現(xiàn)MQTT服務端與客戶端通訊功能

    這篇文章介紹了C#實現(xiàn)MQTT服務端與客戶端通訊的功能,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 使用C#和SQL Server實現(xiàn)自動清理功能的完整方案

    使用C#和SQL Server實現(xiàn)自動清理功能的完整方案

    在現(xiàn)代軟件開發(fā)中,數(shù)據(jù)管理是一個至關重要的環(huán)節(jié),隨著時間的推移,數(shù)據(jù)庫中會積累大量過期或冗余的數(shù)據(jù),這些數(shù)據(jù)不僅占用存儲空間,還會影響系統(tǒng)性能,本文將詳細介紹如何使用C#和SQL Server構(gòu)建一個功能完善的自動清理系統(tǒng),需要的朋友可以參考下
    2026-01-01
  • C#中類與接口的區(qū)別講解

    C#中類與接口的區(qū)別講解

    本文詳細講解了C#中類與接口的區(qū)別,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C# 7.0 使用下劃線忽略使用的變量的原因分析

    C# 7.0 使用下劃線忽略使用的變量的原因分析

    這篇文章主要介紹了C# 7.0 使用下劃線忽略使用的變量的原因淺析,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • 基于switch你可能不知道的一些用法

    基于switch你可能不知道的一些用法

    本篇文章對switch的用法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Untiy Shader實現(xiàn)紋理貼圖滾動

    Untiy Shader實現(xiàn)紋理貼圖滾動

    這篇文章主要為大家詳細介紹了Untiy Shader實現(xiàn)紋理貼圖滾動,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • c# Thread類的用法詳解

    c# Thread類的用法詳解

    這篇文章主要介紹了c# Thread類的用法的相關資料,幫助大家更好的理解和學習c#的相關知識,感興趣的朋友可以了解下
    2020-11-11
  • C# 設計模式系列教程-觀察者模式

    C# 設計模式系列教程-觀察者模式

    將一個系統(tǒng)分割成一個一些類相互協(xié)作的類有一個不好的副作用,那就是需要維護相關對象間的一致性。我們不希望為了維持一致性而使各類緊密耦合,這樣會給維護、擴展和重用都帶來不便。觀察者就是解決這類的耦合關系的。
    2016-06-06
  • C#如何去掉文件夾或文件名非法字符

    C#如何去掉文件夾或文件名非法字符

    這篇文章主要介紹了C#如何去掉文件夾或文件名非法字符的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06

最新評論

拉萨市| 商都县| 共和县| 新蔡县| 锦屏县| 海门市| 神池县| 桃园县| 中卫市| 托克逊县| 浦县| 垦利县| 萨嘎县| 仁寿县| 龙川县| 邵武市| 大兴区| 五家渠市| 红安县| 新民市| 双柏县| 临清市| 积石山| 丹江口市| 昌平区| 江门市| 文化| 当阳市| 新昌县| 开江县| 乌兰浩特市| 乌苏市| 宣恩县| 黄龙县| 土默特左旗| 仁寿县| 基隆市| 龙海市| 陆河县| 楚雄市| 观塘区|