方法
public partial class ComputerInfo{/// <summary>/// 設置IP地址,子網掩碼,網關,DNS/// </summary>public static List<NetworkAdapterInfo> SetIpAddressSubMaskDnsGeteway(string ipAddress, string subMask, string geteWay, string dnsMain, string dnsBackup){List<NetworkAdapterInfo> networkAdapterInfos = new List<NetworkAdapterInfo>();//var str = new StringBuilder();ManagementBaseObject inPar = null;ManagementBaseObject outPar = null;ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){//屏蔽代碼,避免出現無法修改未連接的有線網卡驅動//if (!(bool)mo["IPEnabled"])// continue;networkAdapterInfos.Add(new NetworkAdapterInfo(){Description = mo["Description"].ToString(),IPEnabled = mo["IPEnabled"].ToString(),});//判斷有線網卡var description = mo["Description"].ToString();//有線網卡//Realtek PCIe GbE Family Controller//無線網卡//Qualcomm QCA9565 802.11b/g/n Wireless Adapter//Realtek RTL8852AE WiFi 6 802.11ax PCle Adapter//Intel(R) Wi-Fi 6AX201 160MHzif (description.Contains("PCI") && new List<string>() { "Wireless", "WiFi", "Wi-Fi", "WLAN" }.Exists(w => description.Contains(w)) == false){//設置ip地址和子網掩碼 inPar = mo.GetMethodParameters("EnableStatic");inPar["IPAddress"] = new string[] { ipAddress };inPar["SubnetMask"] = new string[] { subMask };outPar = mo.InvokeMethod("EnableStatic", inPar, null);//設置網關地址 inPar = mo.GetMethodParameters("SetGateways");inPar["DefaultIPGateway"] = new string[] { geteWay };outPar = mo.InvokeMethod("SetGateways", inPar, null);//設置DNS inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");inPar["DNSServerSearchOrder"] = new string[] { dnsMain, dnsBackup };outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);}//foreach (var item in mo.Properties)//{// str.Append($"{item.Name}:{item.Value}\r\n");//}}//var info = str.ToString();return networkAdapterInfos;}}
例子
var networkAdapterInfos = ComputerInfo.SetIpAddressSubMaskDnsGeteway("192.168.11.20", "255.255.255.0", "192.168.11.1", "192.168.11.1", "8.8.8.8");
參考:
1.區分有線網卡和無線網卡:https://www.cnblogs.com/CPFlying/archive/2010/03/14/1685733.html
2.設置ip:c# 如何對網絡信息進行相關設置(ip,dns,網關等)_C#教程_腳本之家