(15).设置IP地址
/// <summary>
/// 设置IP地址
/// </summary>
/// <param name="ip"></param>
/// <param name="submask"></param>
/// <param name="getway"></param>
/// <param name="dns"></param>
private bool SetIpAddress(IEnumerable ip, IEnumerable submask, IEnumerable getway, IEnumerable dns)
{
var wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
var moc = wmi.GetInstances();
foreach (var o in moc)
{
var mo = (ManagementObject) o;
if (!(bool)mo["IPEnabled"])
continue;
if (NetworkInterfaceId != mo["SettingID"].ToString()) continue;
ManagementBaseObject inPar;
ManagementBaseObject outPar;
string str = null;
if (ip != null && submask != null)
{
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = ip;
inPar["SubnetMask"] = submask;
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
if (outPar != null) str = outPar["returnvalue"].ToString();
return (str=="0"||str=="1");
//获取操作设置IP的返回值, 可根据返回值去确认IP是否设置成功。 0或1表示成功
}
if(getway!=null)
{
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = getway;
outPar = mo.InvokeMethod("SetGateways", inPar, null);
if (outPar != null) str = outPar["returnvalue"].ToString();
return (str == "0" || str == "1");
}
if (dns == null) continue;
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = dns;
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
if (outPar != null) str = outPar["returnvalue"].ToString();
return (str == "0" || str == "1");
}
return false;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。
注:相关教程知识阅读请移步到c#教程频道。










