C# - 启用/禁用DHCP

时间:2014-05-21 11:37:59

标签: c# networking dhcp

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

谢谢。

2 个答案:

答案 0 :(得分:3)

也许..

        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);
        }

答案 1 :(得分: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();

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