using System.Collections;
using System.Management;
#region Public Static
/// <summary>
/// Enable DHCP on the NIC
/// </summary>
/// <param name="nicName">Name of the NIC</param>
public static void SetDHCP(string nicName)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
// Make sure this is a IP enabled device. Not something like memory card or VM Ware
if ((bool)mo["IPEnabled"])
{
if (mo["Caption"].Equals(nicName))
{
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = null;
ManagementBaseObject enableDHCP = mo.InvokeMethod("EnableDHCP", null, null);
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
}
}
}
}
/// <summary>
/// Set IP for the specified network card name
/// </summary>
/// <param name="nicName">Caption of the network card</param>
/// <param name="IpAddresses">Comma delimited string containing one or more IP</param>
/// <param name="SubnetMask">Subnet mask</param>
/// <param name="Gateway">Gateway IP</param>
/// <param name="DnsSearchOrder">Comma delimited DNS IP</param>
public static void SetIP(string nicName, string IpAddresses, string SubnetMask, string Gateway, string DnsSearchOrder)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
// Make sure this is a IP enabled device. Not something like memory card or VM Ware
if ((bool)mo["IPEnabled"])
{
if (mo["Caption"].Equals(nicName))
{
ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");
ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newGate["DefaultIPGateway"] = new string[] { Gateway };
newGate["GatewayCostMetric"] = new int[] { 1 };
newIP["IPAddress"] = IpAddresses.Split(',');
newIP["SubnetMask"] = new string[] { SubnetMask };
newDNS["DNSServerSearchOrder"] = DnsSearchOrder.Split(',');
ManagementBaseObject setIP = mo.InvokeMethod("EnableStatic", newIP, null);
ManagementBaseObject setGateways = mo.InvokeMethod("SetGateways", newGate, null);
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
break;
}
}
}
}
/// <summary>
/// Returns the network card configuration of the specified NIC
/// </summary>
/// <param name="nicName">Name of the NIC</param>
/// <param name="ipAdresses">Array of IP</param>
/// <param name="subnets">Array of subnet masks</param>
/// <param name="gateways">Array of gateways</param>
/// <param name="dnses">Array of DNS IP</param>
public static void GetIP(string nicName, out string[] ipAdresses, out string[] subnets, out string[] gateways, out string[] dnses)
{
ipAdresses = null;
subnets = null;
gateways = null;
dnses = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
// Make sure this is a IP enabled device. Not something like memory card or VM Ware
if ((bool)mo["ipEnabled"])
{
if (mo["Caption"].Equals(nicName))
{
ipAdresses = (string[])mo["IPAddress"];
subnets = (string[])mo["IPSubnet"];
gateways = (string[])mo["DefaultIPGateway"];
dnses = (string[])mo["DNSServerSearchOrder"];
break;
}
}
}
}
/// <summary>
/// Returns the list of Network Interfaces installed
/// </summary>
/// <returns>Array list of string</returns>
public static ArrayList GetNICNames()
{
ArrayList nicNames = new ArrayList();
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["ipEnabled"])
{
nicNames.Add(mo["Caption"]);
}
}
return nicNames;
}
#endregion
摘自:http://www.cnblogs.com/fengjun19912/archive/2007/03/13/673490.html
static void SetNetworkAdapter()
{
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;
//
//设置ip地址和子网掩码
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = new string[] { "10.22.21.111", "192.168.10.9" };
inPar["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" };
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
//设置网关地址
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = new string[] { "10.22.21.1", "192.168.10.1" };
outPar = mo.InvokeMethod("SetGateways", inPar, null);
//设置DNS
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = new string[] { "179.32.42.4", "179.32.42.5" };
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
break;
}
}
/**/
/// <summary>
/// 显示当前的ip,子网掩码,网关,DNS,网卡地址等信息
/// </summary>
static void ShowNetworkAdapterInfo()
{
Console.WriteLine("****** Current Network Adapter Information ******");
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (!(bool)mo["IPEnabled"])
continue;
Console.WriteLine("{0}\n SVC: '{1}' MAC: [{2}]", (string)mo["Caption"],
(string)mo["ServiceName"], (string)mo["MACAddress"]);
string[] addresses = (string[])mo["IPAddress"];
string[] subnets = (string[])mo["IPSubnet"];
string[] gateways = (string[])mo["DefaultIPGateway"];
string[] dnses = (string[])mo["DNSServerSearchOrder"];
Console.WriteLine(" Addresses :");
foreach (string sad in addresses)
Console.WriteLine("\t'{0}'", sad);
Console.WriteLine(" Subnets :");
foreach (string sub in subnets)
Console.WriteLine("\t'{0}'", sub);
Console.WriteLine(" Gateways:");
foreach (string gw in gateways)
Console.WriteLine("\t'{0}'", gw);
Console.WriteLine(" DNS:");
foreach (string dns in dnses)
Console.WriteLine("\t'{0}'", dns);
}
}
摘自:http://blog.163.com/o5655@126/blog/static/1667428342010111831814779/