【问题标题】:C# - enable / disable DHCPC# - 启用/禁用 DHCP
【发布时间】:2014-07-10 00:44:12
【问题描述】:

我正在寻找一种在给定网络适配器上使用 C# 启用或禁用 DHCP 的方法。寻找最简单的解决方案。

谢谢。

【问题讨论】:

  • 什么是“散文家解决方案”?您的意思是“最简单的解决方案”吗?
  • @user27811 这个问题是关于禁用 DHCP,而不是禁用适配器本身。

标签: c# networking dhcp


【解决方案1】:

也许……

        const string networcCardName = "[00000007] Intel(R) Ethernet Connection I217-LM"; //Example NIC name
        var management = new ManagementClass("Win32_NetworkAdapterConfiguration");
        var moc = management.GetInstances();

        foreach (var o in moc)
        {
            var mo = (ManagementObject) o;
            if (!(bool) mo["IPEnabled"]) continue;
            if (!mo["Caption"].Equals(networcCardName)) continue;

            var ndns = mo.GetMethodParameters("SetDNSServerSearchOrder");
            ndns["DNSServerSearchOrder"] = null;
            var enableDhcp = mo.InvokeMethod("EnableDHCP", null, null);
            var setDns = mo.InvokeMethod("SetDNSServerSearchOrder", ndns, null);
        }

【讨论】:

  • 感谢也是一个不错的选择,由于它易于理解代码,因此投给了其他选项。
【解决方案2】:

您可以使用Process 触发netsh 命令来设置网络对话框中的所有属性。

例如: 在适配器上设置静态 ipaddress

netsh interface ip set address "Local Area Connection" static 192.168.0.10 255.255.255.0 192.168.0.1 1

要将其设置为您将使用的 dhcp

netsh interface ip set address "Local Area Connection" dhcp

用 C# 来做会是

Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo("netsh", "interface ip set address \"Local Area Connection\" static 192.168.0.10 255.255.255.0 192.168.0.1 1");
p.StartInfo = psi;
p.Start();

设置为静态可能需要几秒钟才能完成,因此如果需要,请确保等待进程退出。

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 2013-03-27
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多