我们有一个 20 ip 绑定到 nic 的 windows 服务器。目前,我们通过(自动)不时更改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 上运行,但我认为这不是问题所在。我们做错了什么?