日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > C# > 正文

C#修改MAC地址類的實例

2020-01-24 03:32:24
字體:
來源:轉載
供稿:網友

1.更新MAC地址

  將注冊表中的鍵值添加上MAC地址

2.重新連接網絡
  試過了3個方法:
   ManagementClass最新提供了Disable,Enable方法,但只支持Vista操作系統
   Shell.dll的方法,可以實現,但處理起來很煩,另外在重新連接時顯示“啟動中”提示框,不友好。
 NetSharingManagerClass 的Disconnect, Connect方法,可以實現,但有一個問題是,會重新更新IP地址,有明顯感覺等。

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;
using System.Net.NetworkInformation;
using System.Management;
using System.Threading;
using System.Runtime.InteropServices;
using NETCONLib;
namespace DynamicMAC
{
    public class MACHelper
    {
        [DllImport("wininet.dll")]
        private extern static bool InternetGetConnectedState(int Description, int ReservedValue);
        /// <summary>
        /// 是否能連接上Internet
        /// </summary>
        /// <returns></returns>
        public bool IsConnectedToInternet()
        {
            int Desc = 0;
            return InternetGetConnectedState(Desc, 0);
        }
        /// <summary>
        /// 獲取MAC地址
        /// </summary>
        public string GetMACAddress()
        {
            //得到 MAC的注冊表鍵
            RegistryKey macRegistry = Registry.LocalMachine.OpenSubKey("SYSTEM").OpenSubKey("CurrentControlSet").OpenSubKey("Control")
                .OpenSubKey("Class").OpenSubKey("{4D36E972-E325-11CE-BFC1-08002bE10318}");
            IList<string> list = macRegistry.GetSubKeyNames().ToList();
            IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties();
            NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
            var adapter = nics.First(o => o.Name == "本地連接");
            if (adapter == null)
                return null;
            return string.Empty;
        }
        /// <summary>
        /// 設置MAC地址
        /// </summary>
        /// <param name="newMac"></param>
        public void SetMACAddress(string newMac)
        {
            string macAddress;
            string index = GetAdapterIndex(out macAddress);
            if (index == null)
                return;
            //得到 MAC的注冊表鍵
            RegistryKey macRegistry = Registry.LocalMachine.OpenSubKey("SYSTEM").OpenSubKey("CurrentControlSet").OpenSubKey("Control")
                .OpenSubKey("Class").OpenSubKey("{4D36E972-E325-11CE-BFC1-08002bE10318}").OpenSubKey(index, true);
            if (string.IsNullOrEmpty(newMac))
            {
                macRegistry.DeleteValue("NetworkAddress");
            }
            else
            {
                macRegistry.SetValue("NetworkAddress", newMac);
                macRegistry.OpenSubKey("Ndi", true).OpenSubKey("params", true).OpenSubKey("NetworkAddress", true).SetValue("Default", newMac);
                macRegistry.OpenSubKey("Ndi", true).OpenSubKey("params", true).OpenSubKey("NetworkAddress", true).SetValue("ParamDesc", "Network Address");
            }
            Thread oThread = new Thread(new ThreadStart(ReConnect));//new Thread to ReConnect
            oThread.Start();
        }
        /// <summary>
        /// 重設MAC地址
        /// </summary>
        public void ResetMACAddress()
        {
            SetMACAddress(string.Empty);
        }
        /// <summary>
        /// 重新連接
        /// </summary>
        private void ReConnect()
        {
            NetSharingManagerClass netSharingMgr = new NetSharingManagerClass();
            INetSharingEveryConnectionCollection connections = netSharingMgr.EnumEveryConnection;
            foreach (INetConnection connection in connections)
            {
                INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection);
                if (connProps.MediaType == tagNETCON_MEDIATYPE.NCM_LAN)
                {
                    connection.Disconnect(); //禁用網絡
                    connection.Connect();    //啟用網絡
                }
            }
        }
        /// <summary>
        /// 生成隨機MAC地址
        /// </summary>
        /// <returns></returns>
        public string CreateNewMacAddress()
        {
            //return "0016D3B5C493";
            int min = 0;
            int max = 16;
            Random ro = new Random();
            var sn = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}",
               ro.Next(min, max).ToString("x"),//0
               ro.Next(min, max).ToString("x"),//
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),//5
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),
               ro.Next(min, max).ToString("x"),//10
               ro.Next(min, max).ToString("x")
                ).ToUpper();
            return sn;
        }
        /// <summary>
        /// 得到Mac地址及注冊表對應Index
        /// </summary>
        /// <param name="macAddress"></param>
        /// <returns></returns>
        public string GetAdapterIndex(out string macAddress)
        {
            ManagementClass oMClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection colMObj = oMClass.GetInstances();
            macAddress = string.Empty;
            int indexString = 1;
            foreach (ManagementObject objMO in colMObj)
            {
                indexString++;
                if (objMO["MacAddress"] != null && (bool)objMO["IPEnabled"] == true)
                {
                    macAddress = objMO["MacAddress"].ToString().Replace(":", "");
                    break;
                }
            }
            if (macAddress == string.Empty)
                return null;
            else
                return indexString.ToString().PadLeft(4, '0');
        }
        #region Temp
        public void noting()
        {
            //ManagementClass oMClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementClass oMClass = new ManagementClass("Win32_NetworkAdapter");
            ManagementObjectCollection colMObj = oMClass.GetInstances();
            foreach (ManagementObject objMO in colMObj)
            {
                if (objMO["MacAddress"] != null)
                {
                    if (objMO["Name"] != null)
                    {
                        //objMO.InvokeMethod("Reset", null);
                        objMO.InvokeMethod("Disable", null);//Vista only
                        objMO.InvokeMethod("Enable", null);//Vista only
                    }
                    //if ((bool)objMO["IPEnabled"] == true)
                    //{
                    //    //Console.WriteLine(objMO["MacAddress"].ToString());
                    //    //objMO.SetPropertyValue("MacAddress", CreateNewMacAddress());
                    //    //objMO["MacAddress"] = CreateNewMacAddress();
                    //    //objMO.InvokeMethod("Disable", null);
                    //    //objMO.InvokeMethod("Enable", null);
                    //    //objMO.Path.ReleaseDHCPLease();
                    //    var iObj = objMO.GetMethodParameters("EnableDHCP");
                    //    var oObj = objMO.InvokeMethod("ReleaseDHCPLease", null, null);
                    //    Thread.Sleep(100);
                    //    objMO.InvokeMethod("RenewDHCPLease", null, null);
                    //}
                }
            }
        }
        public void no()
        {
            Shell32.Folder networkConnectionsFolder = GetNetworkConnectionsFolder();
            if (networkConnectionsFolder == null)
            {
                Console.WriteLine("Network connections folder not found.");
                return;
            }
            Shell32.FolderItem2 networkConnection = GetNetworkConnection(networkConnectionsFolder, string.Empty);
            if (networkConnection == null)
            {
                Console.WriteLine("Network connection not found.");
                return;
            }
            Shell32.FolderItemVerb verb;
            try
            {
                IsNetworkConnectionEnabled(networkConnection, out verb);
                verb.DoIt();
                Thread.Sleep(1000);
                IsNetworkConnectionEnabled(networkConnection, out verb);
                verb.DoIt();
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Gets the Network Connections folder in the control panel.
        /// </summary>
        /// <returns>The Folder for the Network Connections folder, or null if it was not found.</returns>
        static Shell32.Folder GetNetworkConnectionsFolder()
        {
            Shell32.Shell sh = new Shell32.Shell();
            Shell32.Folder controlPanel = sh.NameSpace(3); // Control panel
            Shell32.FolderItems items = controlPanel.Items();
            foreach (Shell32.FolderItem item in items)
            {
                if (item.Name == "網絡連接")
                    return (Shell32.Folder)item.GetFolder;
            }
            return null;
        }
        /// <summary>
        /// Gets the network connection with the specified name from the specified shell folder.
        /// </summary>
        /// <param name="networkConnectionsFolder">The Network Connections folder.</param>
        /// <param name="connectionName">The name of the network connection.</param>
        /// <returns>The FolderItem for the network connection, or null if it was not found.</returns>
        static Shell32.FolderItem2 GetNetworkConnection(Shell32.Folder networkConnectionsFolder, string connectionName)
        {
            Shell32.FolderItems items = networkConnectionsFolder.Items();
            foreach (Shell32.FolderItem2 item in items)
            {
                if (item.Name == "本地連接")
                {
                    return item;
                }
            }
            return null;
        }
        /// <summary>
        /// Gets whether or not the network connection is enabled and the command to enable/disable it.
        /// </summary>
        /// <param name="networkConnection">The network connection to check.</param>
        /// <param name="enableDisableVerb">On return, receives the verb used to enable or disable the connection.</param>
        /// <returns>True if the connection is enabled, false if it is disabled.</returns>
        static bool IsNetworkConnectionEnabled(Shell32.FolderItem2 networkConnection, out Shell32.FolderItemVerb enableDisableVerb)
        {
            Shell32.FolderItemVerbs verbs = networkConnection.Verbs();
            foreach (Shell32.FolderItemVerb verb in verbs)
            {
                if (verb.Name == "啟用(&A)")
                {
                    enableDisableVerb = verb;
                    return false;
                }
                else if (verb.Name == "停用(&B)")
                {
                    enableDisableVerb = verb;
                    return true;
                }
            }
            throw new ArgumentException("No enable or disable verb found.");
        }
        #endregion
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
欧美日韩国产三级| 国产高清在线观看| 国产视频1区2区| 国产一区精品| 欧美日韩激情一区二区三区| 国产一级片播放| 中文字幕欧美国内| 欧美日韩视频免费看| 国产三级做爰在线观看| 国产精品福利视频一区二区三区| 红桃视频国产一区| 久久精品蜜桃| 一区二区在线视频播放| 国产美女主播视频一区| 国产导航在线| av免费在线播放| 狠狠色噜噜狠狠狠狠97| 欧美日韩在线国产| 天堂精品高清1区2区3区| 欧美日韩一区二区在线视频| 亚洲一区三区在线观看| www在线视频| 精品999视频| 在线国产1区| 国产超级va在线视频| 中文字幕欧美人妻精品一区蜜臀| 中文字幕欧美日韩在线| 在线视频第一页| 中文字幕在线观看国产| 欧美日韩免费精品| 日韩手机在线观看视频| 久久99精品国产| 欧美久久在线观看| 亚洲一区在线观看网站| 日韩欧美999| 久久久久久久久综合| 国产手机精品视频| 亚洲成av人综合在线观看| 999在线视频| 欧美日韩国产一二| 91久久精品网| 中文字幕精品在线| 国产欧美日韩精品高清二区综合区| 欧美日韩国产一区在线| 久久99精品国产| 国产一级在线播放| 三级精品视频| 欧美国产亚洲一区| 久久久精品国产免费观看同学| 欧美日韩在线第一页| 欧美日韩亚洲不卡| 欧美三级视频在线| 日韩免费视频一区| 91精品国产高清久久久久久 | 国产日韩免费| 影音先锋中文字幕在线观看| 免费视频中文字幕| 国产成人精品日本亚洲专区61| 欧美日韩激情一区| 欧美日韩国产在线看| 91精品在线看V| 不卡一区二区三区视频| 欧美日韩国产综合久久| 精品三区视频| 日韩精品久久久| 亚洲一区资源| 日韩在线精品| 免费视频一区三区| 一区二区三区视频网站| 麻豆精品视频入口| 日韩网站中文字幕| 日韩中文字幕网| 久久久综合精品| 精品国产乱码一区二区| 欧美一级久久| 欧美日韩乱国产| 91日韩欧美| 九九九精品视频| 欧美日韩中文字幕日韩欧美| 欧美一级久久久久久久久大| 欧美不卡视频一区发布| 日韩欧美国产黄色| 精品国产乱码一区二区| 91精品国产自产在线丝袜啪| 国产日韩精品在线看| 国产99精品| 亚洲小说春色综合另类网蜜桃| 欧美三级在线播放| 精品欧美日韩精品| 日韩精品视频在线观看视频| 中文字幕日韩在线视频| 欧美黄页在线免费观看| 日韩精品视频免费| 国产羞羞视频在线播放| 国内国产区免费视频| 欧美日韩性视频一区二区三区 | 日韩在线二区| 精品视频在线导航| 亚洲第一精品在线| 在线不卡日本| 中文在线一区二区| 精品中文字幕在线| 婷婷中文字幕综合| 日韩精品国产欧美| 日韩你懂的电影在线观看| 99精品人妻国产毛片| 欧美久久在线| 亚洲一区激情| 亚洲免费视频一区| 久久久精品欧美| 中文字幕亚洲欧美| 亚洲图片小说综合| 最新中文字幕在线| www.日韩免费| 国产欧美综合在线| 精品免费久久久| 国产91欧美| а√天堂8资源中文在线| 国产高清一区| 国产 日韩 欧美 综合| 久久精品国产99| 97天天综合网| 日韩高清不卡| 一区二区视频免费看| 久久激情一区| 一区二区三区久久| 国产日韩综合| 精品成人久久av| 一区二区不卡在线播放| 欧美三级日韩在线| 日韩三级高清在线| 国产在线一区二区视频| 免费看日韩精品| 亚洲综合视频一区| 日韩久久精品视频| 国产婷婷色一区二区三区在线| 99精品视频国产| 亚洲欧美日本国产专区一区| 中文字幕日韩欧美在线视频| 91精品视频国产| 国产裸体歌舞团一区二区| 国产日韩av高清| 国产999在线观看| 欧美在线日韩精品| 日韩福利视频导航| 欧美日韩在线第一页| 92久久精品| 日韩欧美国产成人一区二区| 日韩亚洲一区中文字幕| 亚洲视频中文字幕| 欧美日韩中文字幕一区| 欧美日韩在线不卡一区| 首页国产欧美久久| 一区视频在线播放| 午夜精品一区二区三区免费视频| 极品久久久久久| 亚洲国产91精品在线观看| 亚洲深夜福利| 高清国产一区| aaa大片在线观看| 精品视频国产| 一区免费在线| 99综合精品久久| 91精品国产综合久久久蜜臀粉嫩 | 大香一本蕉伊线亚洲网| 日韩中文字幕| 中文字幕亚洲二区| 国产免费永久在线观看| 中文字幕第一页在线播放| 精品三区视频| 精品中文在线| 国产三级精品网站| 精品国自产在线观看| 欧美在线视频二区| 欧美日韩一二| 欧美在线视频二区| 99久久婷婷| 日韩专区中文字幕| 久久精品99久久久久久久久| 亚洲欧洲国产视频| 麻豆精品视频入口| 51精品免费网站| 欧美日韩尤物久久| 黄色欧美日韩| 91精品国产丝袜白色高跟鞋| 精品婷婷伊人一区三区三| 欧美日韩在线视频首页| 欧美成人一区二区| 狠狠色综合色区| 不卡av免费在线| 在线免费播放av| 国产在线中文字幕| 亚洲视频电影在线| 亚洲高清精品视频| 精品成人久久久| 国产在线观看精品| 色综合影院在线| 国产福利一区二区| 亚洲成av人综合在线观看| 欧美三级视频在线| 在线手机中文字幕| 午夜国产在线视频| 麻豆精品99| 国产一级片播放| 在线视频一区二区三区在线播放| 欧美日韩国产综合网| 国产成人va亚洲电影| 精品日韩视频在线观看| 免费视频久久| 久久精品www| 久久精品网站免费观看| 日韩在线视频二区| 国产成人日日夜夜| 丰满少妇一区| 久久韩国免费视频| 在线黄色国产电影| 久久99精品久久久久子伦| 黄色资源在线观看| 亚洲区中文字幕| 国产成人精品免费网站| 久久精品久久精品国产大片| 久久精品久久精品亚洲人| 黄色在线播放网站| 久艹在线视频| 亚洲综合三区| www在线播放| 中文字幕在线国产| 日韩精品a在线观看91| 在线一区免费| 欧美一级日韩不卡播放免费| 国产黄色在线网站| 国产丝袜欧美中文另类| 中文字幕久久精品| 亚洲第一视频| 精品在线91| 国产主播中文字幕| 日韩欧美中文视频| 一区在线免费| 日韩在线视频免费观看| 国产绿帽一区二区三区| 精品国产999| 国产在线观看精品| 黄色一区二区在线| 日韩欧美中文免费| 国产在线观看黄色| 国产日韩精品在线| 国产视频一区三区| 欧美日韩综合视频网址| 欧美一级在线观看| 欧美 日韩 综合| 国产一级在线免费观看| 亚洲高清在线免费| 91精品久久久久久久久久入口| 精品免费久久久| 日韩在线视频网| 日韩亚洲一区中文字幕| 国产婷婷一区二区| 成人精品国产福利| 欧美日韩中文| 日韩a一区二区| 日韩精品在线观看网站| 黄色资源在线观看| 国产精品视频福利一区二区| 国产三级在线观看视频| 欧美日韩国产专区| 日韩一级免费视频| 天堂在线中文| 快she精品国产999| 91精品国产亚洲| 日韩av综合在线观看| 国产视频不卡| 午夜一区二区三区| 天堂√8在线中文| 国产福利免费观看| 欧美日韩国产一区| 国产免费不卡av| 欧美一级日韩不卡播放免费| 亚洲成av人片一区二区密柚| 国产日韩精品视频| 樱花草www在线| 亚洲影视资源网| 91精品国产91久久久久久不卡| 国产欧美日韩精品在线| 91精品国产免费| 一区二区三区在线不卡| 亚洲va韩国va欧美va精品| 日韩国产一区三区| 日韩中文字幕综合| 国产一二三视频| 99久热re在线精彩视频| 国产三级视频在线| 日本亚洲视频在线| 日韩欧美资源站| 中文国产字幕在线观看| 中文字幕亚洲一区在线观看| 在线观看av的网站| 中文字幕在线看视频国产欧美| 国产日产一区二区三区| 亚洲二区自拍| 亚洲福利视频专区| 日韩精品首页| 欧美日韩在线视频免费观看 | 黄色精品在线观看| 国产成人精品日本亚洲专区61| 久草视频观看| 中文网丁香综合网| 欧美 中文字幕| 99视频在线看| 国产激情久久| 99精品电影| 日韩不卡一二三区| 成人xxxx| 国产一区高清视频| 国产成人一二三区| 欧美精选午夜久久久乱码6080| 国产福利在线导航| 中文字幕日韩在线观看| 精品日韩av| 国产v日产∨综合v精品视频| 极品久久久久久| 国产不卡一区| 国产成人精品日本亚洲专区61| 日韩欧美综合| 亚洲视频中文字幕| aa国产成人| 91精品国产91久久| 欧美日韩国产观看视频| 91精品国产自产观看在线| av一区二区高清| 91精品国产自产91精品| 欧美日韩综合视频网址| 极品久久久久久| 视频一区三区| 欧美xxxx中国| 国产欧美久久久精品影院| 亚洲福利一区| 日韩中文字幕网| 欧美午夜影院在线视频| 日韩精品手机在线| 国产三级在线播放| 国产成人一区二区精品非洲| 亚洲羞羞网站| av午夜在线| 日韩欧美国产成人一区二区| 欧美日韩三级一区| 91精品在线观| aa国产成人| 欧美日韩在线国产| 国产99对白在线播放| 精品亚洲国内自在自线福利| 狠狠色噜噜狠狠狠狠97| 二区中文字幕| 精品国产免费观看一区| 国产欧美日韩在线播放| 日韩福利视频导航| 日韩欧美在线不卡| 亚洲大胆人体av| 中文字幕五月欧美| 欧美日韩在线视频一区| 日韩欧美中文视频| 亚洲黄色片在线观看| 欧美日韩综合在线| 欧美午夜影院在线视频| 中文字幕亚洲视频| 国内精品不卡| 国产成人一二三区| 黄色国产网站在线观看| 日韩精品视频在线看| av中文资源在线| 日韩在线不卡一区| 国产成人精品999| 精品在线一区二区三区| 色综合影院在线| 日韩精品一二三四区| 国产一区在线精品| 婷婷久久综合网| 精品国产31久久久久久| 久久久久黄色| 91极品视频在线观看| 久久99久久久久久久噜噜| 久久久精品午夜少妇| 日韩一级二级三级| 综合激情国产一区| 中文字幕精品www乱入免费视频| 拍真实国产伦偷精品| 在线三级av| 亚洲成av人片一区二区密柚| 日韩精品 欧美| 日韩欧美综合| 91最新在线| 国产绿帽一区二区三区| 日韩国产高清一区| 日韩精品高清不卡| 国产欧美日韩在线播放| 天天综合天天做| 亚洲视频中文字幕| 精品久久久久久综合日本欧美| 欧美日韩高清一区二区| 国产69精品久久久久孕妇国产69久久| 日韩视频一区|