LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#修改Windows系統(tǒng)mac網(wǎng)卡地址

admin
2025年8月13日 15:52 本文熱度 404

在Windows系統(tǒng)中修改MAC地址可以通過修改注冊表或使用Windows Management Instrumentation (WMI) 實現(xiàn)。以下是C#代碼示例,通過修改注冊表實現(xiàn)MAC地址更改:

using System;

using Microsoft.Win32;

?

using System.Diagnostics;

using System.Net.NetworkInformation;


class MacAddressChanger

{

    static void Main(string[] args)

    {

        // 需要管理員權限

        if (!IsAdministrator())

        {

            Console.WriteLine("請以管理員身份運行此程序");

            return;

        }


        string interfaceName = "以太網(wǎng)"; // 改為你的網(wǎng)絡連接名稱(中文系統(tǒng)常用"以太網(wǎng)"/"WLAN")

        string newMacAddress = "001122334455"; // 12位十六進制MAC地址(不要分隔符)


        try

        {

            // 獲取網(wǎng)卡ID

            string interfaceId = GetInterfaceId(interfaceName);

            if (string.IsNullOrEmpty(interfaceId))

            {

                Console.WriteLine($"找不到網(wǎng)絡適配器: {interfaceName}");

                return;

            }


            // 修改注冊表

            ChangeMacInRegistry(interfaceId, newMacAddress);


            Console.WriteLine("MAC地址修改成功!需要重啟網(wǎng)卡生效...");


            // 重啟網(wǎng)卡(可選)

            RestartNetworkAdapter(interfaceName);

            

            Console.WriteLine("操作完成!");

        }

        catch (Exception ex)

        {

            Console.WriteLine($"錯誤: {ex.Message}");

        }

    }


    // 檢查管理員權限

    static bool IsAdministrator()

    {

        var identity = System.Security.Principal.WindowsIdentity.GetCurrent();

        var principal = new System.Security.Principal.WindowsPrincipal(identity);

        return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);

    }


    // 獲取網(wǎng)絡接口ID

    static string GetInterfaceId(string interfaceName)

    {

        foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())

        {

            if (nic.Name.Equals(interfaceName))

            {

                return nic.Id;

            }

        }

        return null;

    }


    // 修改注冊表

    static void ChangeMacInRegistry(string interfaceId, string newMacAddress)

    {

        string registryPath = $@"SYSTEM\CurrentControlSet\Control\Class\{{4d36e972-e325-11ce-bfc1-08002be10318}}";

        

        using (RegistryKey baseKey = Registry.LocalMachine.OpenSubKey(registryPath, true))

        {

            if (baseKey == null) throw new Exception("注冊表路徑不存在");


            foreach (string subkeyName in baseKey.GetSubKeyNames())

            {

                using (RegistryKey subKey = baseKey.OpenSubKey(subkeyName, true))

                {

                    if (subKey?.GetValue("NetCfgInstanceId")?.ToString() == interfaceId)

                    {

                        subKey.SetValue("NetworkAddress", newMacAddress, RegistryValueKind.String);

                        return;

                    }

                }

            }

        }

        throw new Exception("找不到對應的網(wǎng)絡適配器注冊表項");

    }


    // 重啟網(wǎng)卡

    static void RestartNetworkAdapter(string interfaceName)

    {

        ProcessStartInfo psi = new ProcessStartInfo("netsh", $"interface set interface \"{interfaceName}\" disable")

        {

            WindowStyle = ProcessWindowStyle.Hidden

        };

        Process.Start(psi)?.WaitForExit();


        psi.Arguments = $"interface set interface \"{interfaceName}\" enable";

        Process.Start(psi)?.WaitForExit();

    }

}

重要說明:

1、管理員權限:程序必須以管理員身份運行(右鍵 → 以管理員身份運行)

2、參數(shù)修改

    • interfaceName:改為你的網(wǎng)絡連接名稱(在"網(wǎng)絡和共享中心"查看)

    • newMacAddress:12位十六進制MAC地址(如AABBCCDDEEFF

3、生效方式

    • 代碼會自動禁用/啟用網(wǎng)卡使修改生效

    • 如果修改失敗,請嘗試手動重啟網(wǎng)卡或重啟計算機

4、兼容性

    • 適用于Windows 7/10/11

    • 某些網(wǎng)卡驅動可能不支持軟件修改MAC地址

?5、注意事項

    • 修改MAC地址可能違反網(wǎng)絡使用政策

    • 虛擬網(wǎng)卡和部分無線網(wǎng)卡可能不支持此方法

    • 部分殺毒軟件會阻止注冊表修改

使用步驟:

  • 獲取當前網(wǎng)絡適配器名稱(在控制面板 → 網(wǎng)絡和共享中心 → 更改適配器設置)

  • 生成合法的MAC地址(12位十六進制字符,不要包含:-

  • 以管理員身份運行程序

替代方案(WMI方法):

using System.Management;


static void SetMacAddressWMI(string interfaceName, string newMacAddress)

{

    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(

        "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId = '" + interfaceName + "'"))

    {

        foreach (ManagementObject adapter in searcher.Get())

        {

            using (adapter)

            {

                adapter.InvokeMethod("Disable", null);

                adapter.SetPropertyValue("MACAddress", newMacAddress);

                adapter.InvokeMethod("Enable", null);

            }

        }

    }

}

(需添加System.Management NuGet包)

?? 注意:某些系統(tǒng)環(huán)境下WMI方法可能不可靠,注冊表方法更穩(wěn)定。

建議在實際使用前備份注冊表,并確保新MAC地址符合目標網(wǎng)絡的要求。


該文章在 2025/8/13 16:29:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本亚洲欧洲色 | 天天躁中文字幕在线视频 | 亚洲精品中文字幕乱码三区 | 中文字幕级片在线播放 | 久久深夜福利亚洲网站 | 亚洲免费在线观看片 |