【问题标题】:Configure Win 7 Network Adapter Programatically in C#在 C# 中以编程方式配置 Win 7 网络适配器
【发布时间】:2013-03-14 11:55:46
【问题描述】:

我想通过 c# 以编程方式配置 windows 7 中的所有活动网络适配器。

我试过以下代码:

string newIPAddress = "100.200.100.11";
        string newSubnetMask = "255.255.255.1";
        string[] newGateway = { "100.200.100.1" };

        ManagementObjectSearcher m = new ManagementObjectSearcher();
        m.Query = new ObjectQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True");
        foreach (ManagementObject mo in m.Get())
        {
            try
            {
                ManagementBaseObject setIP;
                ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");

                newIP["IPAddress"] = new string[] { newIPAddress };
                newIP["SubnetMask"] = new string[] { newSubnetMask };

                setIP = mo.InvokeMethod("EnableStatic", newIP, null);
                mo.InvokeMethod("SetGateways", new object[] { newGateway, new string[] { "1" } });
                mo.InvokeMethod("SetDNSServerSearchOrder", new object[] { new string[] { "100.100.100.100" } });
            }
            catch (Exception)
            {
                throw;
            }
        }

但它只是更新默认网关并没有改变其他任何东西。

我也用过 netsh 命令:

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
        foreach (NetworkInterface adapter in adapters)
        {
            Console.WriteLine(adapter.Name);
            Process p = new Process();
            ProcessStartInfo psi = new ProcessStartInfo("netsh", "interface ip set address \"" + adapter.Name + "\" static 192.168.0.10 255.255.255.0 192.168.0.1 ");
            psi.UseShellExecute = false;
            p.StartInfo = psi;
            p.Start();

        }

但它适用于第一个适配器,之后它会出错:

“DHCP服务配置失败,接口可能断开。”

如何在 c# 中配置所有适配器?

【问题讨论】:

  • 在命令行中运行ipconfig /all,你会看到它确实显示了断开的网络适配器,所以它并没有真正抛出错误。
  • 感谢您的回复。唯一的变化是,在运行 netsh 代码后启用的适配器中,“自动获取 IP 地址”更改为“使用以下 IP”,没有 IP 地址。另外,我猜每次创建一个新进程都不是有效的方法配置网络适配器。我们可能会结束运行大量 Zoombie 进程。

标签: c# windows networking system.security


【解决方案1】:

我知道这篇文章很旧,但我相信您遇到了这个问题,因为您试图将多个适配器的 IP 设置为精确相同的 IP。

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
  • 我最近遇到了与恶魔猎手相同的问题,这是因为我无意中尝试将所有适配器设置为完全相同的 IP。我只是想帮忙!
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
相关资源
最近更新 更多