C#修改IP
为什么同样的程序,有的电脑可以改IP有的不可以using System;
using System.Threading;
using System.Management;//需添加相关应用项 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Management.dll
namespace ConsoleApplication1
{
class Program
{
[MTAThread]
static void Main(string[] args)
{
ReportIP();
// SwitchToDHCP();
SwitchToStatic();
Thread.Sleep(5000);
ReportIP();
Console.WriteLine("end.");
}
static void SwitchToDHCP()
{
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;
inPar = mo.GetMethodParameters("EnableDHCP");
outPar = mo.InvokeMethod("EnableDHCP", inPar, null);
break;
}
}
static void SwitchToStatic()
{
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;
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = new string[] { "192.168.1.223" };
inPar["SubnetMask"] = new string[] { "255.255.255.0" };
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
break;
}
}
static void ReportIP()
{
Console.WriteLine("****** Current IP addresses:");
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"];
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);
}
}
}
}
--------------------编程问答-------------------- 有的电脑有多个网卡。 --------------------编程问答-------------------- 已经禁用了 --------------------编程问答-------------------- adsl拨号 --------------------编程问答-------------------- 可以解释清楚点吗? --------------------编程问答-------------------- 除了需要对外发布的机房或者公司或者政府机构 使用固定ip地址外,一般的ip都是动态的;即每次拨号上网的ip都是随机的(一定区域内N个ip)
这个还用普及吗 还是我会错意了 --------------------编程问答-------------------- 有异常没? --------------------编程问答-------------------- 没有异常,我只是修改本机电脑IP --------------------编程问答-------------------- --------------------编程问答-------------------- 我也在做类似的VC程序,情况跟LZ说的一样,看来Vista和Windows7不支持此操作,不过EnableDHCP倒没问题。详见:http://support.microsoft.com/kb/950134 --------------------编程问答-------------------- 看一下失败的那些电脑的系统日志中有没有错误纪录
补充:.NET技术 , C#