Настройка IP с помощью инструмента ac # - PullRequest
0 голосов
/ 05 марта 2011

Я новичок в c #, который хочет больше узнать о программировании. Итак, я начал с простого инструмента, который может установить адрес выбранного сетевого адаптера на статический или динамический (например, свойства Windows TCP / IP. Я установил дизайн инструмента точно так же, как свойства TCP / IP). Установка статического IP-адреса для сетевого адаптера работает довольно хорошо. Но когда я отключаю компьютер от сети, а затем устанавливаю IP-адрес сетевого адаптера на динамический (получить IP-адрес автоматически »), он не устанавливает динамический IP-адрес Windows. Я полностью потерян с этой проблемой, у меня есть понятия не имею, как это решить. Я понимаю, что автоматически получаю IP-адрес только при подключении к сети (где включен маршрутизатор или DHCP-сервер). Но когда я отключаю компьютер от сети, и я устанавливаю свойства IP на динамический со свойствами Windows TCP / IP, это работает хорошо. Что такое работа в моем коде?

Большое спасибо за вашу помощь!

Ниже кода, который я использую:

    public void setDHCPMode()
    {
        ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
        ManagementObjectCollection moc = mc.GetInstances();

        foreach (ManagementObject mo in moc)
        {
            if (!(bool)mo["ipEnabled"])
                continue;

            try
            {
                string desc = (string)(mo["Description"]);

                if (desc == NICcomboBox.Text)
                {
                    ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
                    newDNS["DNSServerSearchOrder"] = null;
                    ManagementBaseObject enableDHCP = mo.InvokeMethod("EnableDHCP", null, null);
                    ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
                }

                toolStripStatusLabel1.Text = "DHCP set";
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unable to set DHCP : " + ex.Message);
            }
        }
    }

1 Ответ

0 голосов
/ 06 марта 2011

Я нашел проблему. Похоже, WMI не работает правильно. Невозможно установить для свойств TCP / IP значение DHCP, пока кабель отключен для определенной сетевой карты.

Я решил это, установив режим DHCP в регестры. Теперь работает отлично.

...