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

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

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

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

一、什么是MAC地址

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

二、推薦方案:使用 NetworkInterface 類

.NET Framework 提供了 System.Net.NetworkInformation 命名空間,這是獲取MAC地址最標(biāo)準(zhǔn)、跨平臺(tái)兼容性最好的方式

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 常見(jiàn)網(wǎng)卡類型枚舉

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

三、常見(jiàn)問(wèn)題與注意事項(xiàng)

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

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

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

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

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

// 轉(zhuǎn)換為冒號(hào)格式: 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 權(quán)限問(wèn)題

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

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

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

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

四、總結(jié)

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    Untiy Shader實(shí)現(xiàn)紋理貼圖滾動(dòng)

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

    c# Thread類的用法詳解

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

    C# 設(shè)計(jì)模式系列教程-觀察者模式

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

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

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

最新評(píng)論

宁都县| 祥云县| 望城县| 乃东县| 成安县| 祁东县| 吕梁市| 山东| 新野县| 永登县| 黄梅县| 日土县| 永泰县| 大埔县| 隆林| 余姚市| 内江市| 育儿| 奉新县| 文昌市| 蒙自县| 道真| 河间市| 蒙阴县| 章丘市| 纳雍县| 清水县| 秦安县| 永胜县| 隆昌县| 新郑市| 玉环县| 昌乐县| 东明县| 泽州县| 环江| 安龙县| 荆门市| 南通市| 苏尼特左旗| 徐水县|