【发布时间】:2013-02-19 11:40:29
【问题描述】:
我们有一个绑定了 20 个 ip 的 windows 服务器到 nic。目前,我们通过(自动)不时更改IP(request.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(connectionInfo.BindIPEndPointCallback);)成功地执行(网络)请求。几天以来,我们决定使用一个测试环境,我们使用 .NET 的 WebBrowser 控件来发出 Web 请求。
问题从这里开始,因为我们无法提供类似端点的解决方案来更改 webcontrol 正在使用的 ip。这就是我们决定以编程方式更改 IP 的原因,但每当我们通过 WMI 更改 IP 时,我们都会(一直)使用单个 IP 地址来识别。
这是 wmi 代码:
public static void setIP(string IpAddresses, string SubnetMask, string Gateway)
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"]==true)
{
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 };
ManagementBaseObject setIP = mo.InvokeMethod("EnableStatic", newIP, null);
ManagementBaseObject setGateways = mo.InvokeMethod("SetGateways", newGate, null);
}
}
}
服务器在 VM Ware 上运行,但我认为这不是问题所在。 我们做错了什么?
【问题讨论】:
标签: c# wmi web-controls