C # - включить / отключить DHCP

1

Я ищу способ включить или отключить DHCP с помощью С# на данном сетевом адаптере. ища самое простое решение.

Спасибо.

Теги:
networking
dhcp

2 ответа

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

Сделать это с С# было бы

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

Установка на статику может занять до двух секунд, поэтому, если вам нужно, убедитесь, что вы дождались завершения процесса.

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);
        }
  • 0
    Спасибо также за хороший вариант, за другого проголосовали из-за его простоты в понимании кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню