.net更改ip,dns等

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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值