我用的是这样的public bool ModIP(ip myIP)
{
bool isSuccess = false;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
myIP.Mac = mo["MacAddress"].ToString();
try
{
//设置IP地址和子网掩码
ManagementBaseObject newIPSubMask = mo.GetMethodParameters("EnableStatic");
newIPSubMask["IPAddress"] = new string[] { myIP.Ip };
newIPSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };
ManagementBaseObject setIPSubMask = mo.InvokeMethod("EnableStatic", newIPSubMask, null);
//设置
//ManagementBaseObject newSubMask = mo.GetMethodParameters("EnableStatic");
//newSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };
//ManagementBaseObject setSubMask = mo.InvokeMethod("EnableStatic", newSubMask, null); //设置网关
ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
newGate["DefaultIPGateway"] = new string[] { myIP.Gateway };
ManagementBaseObject setGateway = mo.InvokeMethod("SetGateways", newGate, null); //设置DNS
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = new string[] { myIP.Dns1, myIP.Dns2 };
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
isSuccess = true;
}
catch (Exception ex)
{
MessageBox.Show("原因:" + ex);
isSuccess = false;
}
}
}
return isSuccess;
}
但是这个的不好之处就是会把现在使用的所有网卡,像无线啊什么的IP地址都改了,想弄个下拉条选择网卡,根据选择的网卡来修改IP。
我弄了一个只能读取网卡的string carName = "";
ManagementObjectSearcher search = new ManagementObjectSearcher
("SELECT * FROM Win32_NetWorkAdapterConfiguration");
foreach (ManagementObject sear in search.Get())
{
if (sear["IPAddress"] != null)
{
carName = sear["Description"].ToString().Trim();
comboBox1.Items.Add(carName);
}
}
comboBox1.SelectedIndex = 0;高手来解决一下吧
{
bool isSuccess = false;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"])
{
myIP.Mac = mo["MacAddress"].ToString();
try
{
//设置IP地址和子网掩码
ManagementBaseObject newIPSubMask = mo.GetMethodParameters("EnableStatic");
newIPSubMask["IPAddress"] = new string[] { myIP.Ip };
newIPSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };
ManagementBaseObject setIPSubMask = mo.InvokeMethod("EnableStatic", newIPSubMask, null);
//设置
//ManagementBaseObject newSubMask = mo.GetMethodParameters("EnableStatic");
//newSubMask["SubnetMask"] = new string[] { myIP.Subnetmask };
//ManagementBaseObject setSubMask = mo.InvokeMethod("EnableStatic", newSubMask, null); //设置网关
ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
newGate["DefaultIPGateway"] = new string[] { myIP.Gateway };
ManagementBaseObject setGateway = mo.InvokeMethod("SetGateways", newGate, null); //设置DNS
ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = new string[] { myIP.Dns1, myIP.Dns2 };
ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
isSuccess = true;
}
catch (Exception ex)
{
MessageBox.Show("原因:" + ex);
isSuccess = false;
}
}
}
return isSuccess;
}
但是这个的不好之处就是会把现在使用的所有网卡,像无线啊什么的IP地址都改了,想弄个下拉条选择网卡,根据选择的网卡来修改IP。
我弄了一个只能读取网卡的string carName = "";
ManagementObjectSearcher search = new ManagementObjectSearcher
("SELECT * FROM Win32_NetWorkAdapterConfiguration");
foreach (ManagementObject sear in search.Get())
{
if (sear["IPAddress"] != null)
{
carName = sear["Description"].ToString().Trim();
comboBox1.Items.Add(carName);
}
}
comboBox1.SelectedIndex = 0;高手来解决一下吧
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货