手動設置本地網絡的方法顯然很不可取,所以我們要讓程序幫我們完成,需要的朋友可以參考下
如今網絡在我們的生活工作中所起的作用越來越大,可以說離開了網絡我們就無法正常的工作和生活。作為程序員我們寫的程序大多數也會跟網絡相關,而想要使用網絡首先要將機器的網絡配置設置好。而手動設置的方法顯然很不可取,所以我們要讓程序幫我們完成。下面是一個很常用的C#設置系統各種網絡參數的一個小Demo一起看看吧。 這個Demo是通過"Win32_NetworkAdapterConfiguration"這個管理類.這里面已基本包括了IP,DNS,網關的設置信息。 在C#中使用WMI還是比較簡單的: 代碼如下:using System; using System.Collections.Generic; using System.Text; using System; using System.Collections; using System.Text; using System.Management; using System.Text.RegularExpressions; namespace Demo { /// <summary> /// 網絡設置類,設置網絡的各種參數(DNS、網關、子網掩碼、IP) /// </summary> public class NetworkSetting { public NetworkSetting() { // 構造函數邏輯 } /// <summary> /// 設置DNS /// </summary> /// <param name="dns"></param> public static void SetDNS(string[] dns) { SetIPAddress(null, null, null, dns); } /// <summary> /// 設置網關 /// </summary> /// <param name="getway"></param> public static void SetGetWay(string getway) { SetIPAddress(null, null, new string[] { getway }, null); } /// <summary> /// 設置網關 /// </summary> /// <param name="getway"></param> public static void SetGetWay(string[] getway) { SetIPAddress(null, null, getway, null); } /// <summary> /// 設置IP地址和掩碼 /// </summary> /// <param name="ip"></param> /// <param name="submask"></param> public static void SetIPAddress(string ip, string submask) { SetIPAddress(new string[] { ip }, new string[] { submask }, null, null); } /// <summary> /// 設置IP地址,掩碼和網關 /// </summary> /// <param name="ip"></param> /// <param name="submask"></param> /// <param name="getway"></param> public static void SetIPAddress(string ip, string submask, string getway) { SetIPAddress(new string[] { ip }, new string[] { submask }, new string[] { getway }, null); } /// <summary> /// 設置IP地址,掩碼,網關和DNS /// </summary> /// <param name="ip"></param> /// <param name="submask"></param> /// <param name="getway"></param> /// <param name="dns"></param> public static void SetIPAddress(string[] ip, string[] submask, string[] getway, string[] dns) { ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = wmi.GetInstances(); ManagementBaseObject inPar = null; ManagementBaseObject outPar = null; foreach (ManagementObject mo in moc) { //如果沒有啟用IP設置的網絡設備則跳過 if (!(bool) mo["IPEnabled"]) continue; //設置IP地址和掩碼 if (ip != null && submask != null) { inPar = mo.GetMethodParameters("EnableStatic"); inPar["IPAddress"] = ip; inPar["Sub新聞熱點
疑難解答