【问题标题】:Change ip address used by application (application layer)更改应用程序使用的 ip 地址(应用程序层)
【发布时间】: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


    【解决方案1】:

    不太确定,但您向 EnableStatic 传递了多个 IP 地址,但只传递了一个子网掩码,这可能会导致问题。 尝试为每个 ip 地址传递一个子网掩码,即将 newIP["SubnetMask"] 的分配更改为:

     newIP["SubnetMask"] = Enumerable.Repeat(SubnetMask, newIP["IPAddress"].Length).ToArray();
    

    并确保 IpAddresses 参数中没有任何空格

    【讨论】:

    • 我认为我的问题并不清楚。我已经将所有 ip 都绑定到了 NIC,我只想自己决定这个应用程序使用哪个 ip。
    猜你喜欢
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2017-06-21
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多