Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
namespace CommandLine {
class Program {
static void Main(string[] args) {
ShowNetwork();
SetNetwork(new Networker {
IpAddress = "192.168.15.27",
Mask = "255.255.255.0",
Gateway = "192.168.15.1",
Dns1 = "202.96.209.133",
Dns2 = "203.94.0.26"
});
Console.WriteLine("== End ==");
Console.ReadKey();
}
public static void ShowNetwork() {
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
ManagementObjectCollection queryCollection = query.Get();
Console.WriteLine("==========");
foreach (ManagementObject mo in queryCollection) {
string description = mo["Description"].ToString();
string mac = mo["MACAddress"].ToString();
string[] ips = (string[])mo["IPAddress"];
string[] masks = (string[])mo["IPSubnet"];
string[] gateways = (string[])mo["DefaultIPGateway"];
string[] dnses = (string[])mo["DNSServerSearchOrder"];
Console.WriteLine("Description:{0}", description);
Console.WriteLine("MACAddress:{0}", mac);
foreach (string each in ips) {
Console.WriteLine("IPAddress:{0}", each);
}
foreach (string each in masks) {
Console.WriteLine("Mask:{0}", each);
}
if (gateways != null) {
foreach (string each in gateways) {
Console.WriteLine("Gateway:{0}", each);
}
}
if (dnses != null) {
foreach (string each in dnses) {
Console.WriteLine("DNSServer:{0}", each);
}
}
Console.WriteLine("==========");
}
}
public static void SetNetwork(Networker worker) {
string result = "failed";
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
ManagementObjectCollection queryCollection = query.Get();
string[] ipAddress = new string[] { worker.IpAddress };
string[] mask = new string[] { worker.Mask };
string[] gateway = null;
if (!string.IsNullOrEmpty(worker.Gateway)) {
gateway = new string[] { worker.Gateway };
}
string[] dnses = null;
List<string> list = new List<string>();
if (!string.IsNullOrEmpty(worker.Dns1)) {
list.Add(worker.Dns1);
}
if (!string.IsNullOrEmpty(worker.Dns2)) {
list.Add(worker.Dns2);
}
if (list.Count != 0) {
dnses = list.ToArray();
}
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
foreach (ManagementObject mo in queryCollection) {
try {
//设置IP地址和掩码
if (ipAddress != null && mask != null) {
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = ipAddress;
inPar["SubnetMask"] = mask;
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
}
//设置网关地址
if (gateway != null) {
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = gateway;
outPar = mo.InvokeMethod("SetGateways", inPar, null);
}
//设置DNS地址
if (dnses != null) {
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = dnses;
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
}
result = "succeed";
} catch {
result = "failed";
}
break;
}
Console.WriteLine("SetNetwork {0}", result);
}
}
}
Networker.cs
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
namespace CommandLine {
class Program {
static void Main(string[] args) {
ShowNetwork();
SetNetwork(new Networker {
IpAddress = "192.168.15.27",
Mask = "255.255.255.0",
Gateway = "192.168.15.1",
Dns1 = "202.96.209.133",
Dns2 = "203.94.0.26"
});
Console.WriteLine("== End ==");
Console.ReadKey();
}
public static void ShowNetwork() {
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
ManagementObjectCollection queryCollection = query.Get();
Console.WriteLine("==========");
foreach (ManagementObject mo in queryCollection) {
string description = mo["Description"].ToString();
string mac = mo["MACAddress"].ToString();
string[] ips = (string[])mo["IPAddress"];
string[] masks = (string[])mo["IPSubnet"];
string[] gateways = (string[])mo["DefaultIPGateway"];
string[] dnses = (string[])mo["DNSServerSearchOrder"];
Console.WriteLine("Description:{0}", description);
Console.WriteLine("MACAddress:{0}", mac);
foreach (string each in ips) {
Console.WriteLine("IPAddress:{0}", each);
}
foreach (string each in masks) {
Console.WriteLine("Mask:{0}", each);
}
if (gateways != null) {
foreach (string each in gateways) {
Console.WriteLine("Gateway:{0}", each);
}
}
if (dnses != null) {
foreach (string each in dnses) {
Console.WriteLine("DNSServer:{0}", each);
}
}
Console.WriteLine("==========");
}
}
public static void SetNetwork(Networker worker) {
string result = "failed";
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
ManagementObjectCollection queryCollection = query.Get();
string[] ipAddress = new string[] { worker.IpAddress };
string[] mask = new string[] { worker.Mask };
string[] gateway = null;
if (!string.IsNullOrEmpty(worker.Gateway)) {
gateway = new string[] { worker.Gateway };
}
string[] dnses = null;
List<string> list = new List<string>();
if (!string.IsNullOrEmpty(worker.Dns1)) {
list.Add(worker.Dns1);
}
if (!string.IsNullOrEmpty(worker.Dns2)) {
list.Add(worker.Dns2);
}
if (list.Count != 0) {
dnses = list.ToArray();
}
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
foreach (ManagementObject mo in queryCollection) {
try {
//设置IP地址和掩码
if (ipAddress != null && mask != null) {
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = ipAddress;
inPar["SubnetMask"] = mask;
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
}
//设置网关地址
if (gateway != null) {
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = gateway;
outPar = mo.InvokeMethod("SetGateways", inPar, null);
}
//设置DNS地址
if (dnses != null) {
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = dnses;
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
}
result = "succeed";
} catch {
result = "failed";
}
break;
}
Console.WriteLine("SetNetwork {0}", result);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CommandLine {
public class Networker {
public string IpAddress { get; set; }
public string MacAddress { get; set; }
public string Mask { get; set; }
public string Gateway { get; set; }
public string Dns1 { get; set; }
public string Dns2 { get; set; }
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CommandLine {
public class Networker {
public string IpAddress { get; set; }
public string MacAddress { get; set; }
public string Mask { get; set; }
public string Gateway { get; set; }
public string Dns1 { get; set; }
public string Dns2 { get; set; }
}
}