Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TCP\IP настрйоки 
V
    Опции темы
Veitmen
Дата 20.9.2007, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 10.11.2006
Где: СПБ

Репутация: нет
Всего: 4



Привет всем. Как можно поменять натсройки определенного подключения?? Т.е. есть в панеле управления-> сетевые подключения, далее выбираю подключение, далее TCP\IP и там есть настройки. Как это менять программно??? Поиском пользовался, того чего надо не нашел...

Это сообщение отредактировал(а) Veitmen - 20.9.2007, 08:20
PM MAIL ICQ   Вверх
Stepan_Lameroff
Дата 20.9.2007, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 1
Всего: 14



Проще всего при помощи WMI.
Получить список адаптеров:
Код

        public static IEnumerable<String> GetNICNames()
        {
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

            foreach (ManagementObject mo in mc.GetInstances())
            {
                if ((bool)mo["IPEnabled"])
                {
                    yield return (mo["Caption"] as string) ?? String.Empty;
                }
            }
        }


Поменять IP:
Код

        public static void SetIP(string nicName,
                                 string IpAddresses,
                                 string SubnetMask,
                                 string Gateway,
                                 string DnsSearchOrder)
        {
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

            foreach (ManagementObject mo in mc.GetInstances())
            {
                if ((bool)mo["IPEnabled"])
                {
                    if (mo["Caption"].Equals(nicName))
                    {
                        ManagementBaseObject newIP = mo.GetMethodParameters("EnableStatic");
                        ManagementBaseObject newGate = mo.GetMethodParameters("SetGateways");
                        ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");

                        newGate["DefaultIPGateway"] = new string[] {Gateway};
                        newGate["GatewayCostMetric"] = new int[] {1};

                        newIP["IPAddress"] = IpAddresses.Split(',');
                        newIP["SubnetMask"] = new string[] {SubnetMask};

                        newDNS["DNSServerSearchOrder"] = DnsSearchOrder.Split(',');

                        ManagementBaseObject setIP = mo.InvokeMethod("EnableStatic", newIP, null);
                        ManagementBaseObject setGateways = mo.InvokeMethod("SetGateways", newGate, null);
                        ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);

                        break;
                    }
                }
            }
        }



Это сообщение отредактировал(а) Stepan_Lameroff - 20.9.2007, 11:00
PM MAIL   Вверх
Veitmen
Дата 21.9.2007, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 10.11.2006
Где: СПБ

Репутация: нет
Всего: 4



Спасибо большое.  smile  Все отлично работает!) Менее ста постов поэтому  не могу +1. Еще один вопрос. Как указать что автоматические настройки будут?
PM MAIL ICQ   Вверх
Stepan_Lameroff
Дата 21.9.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 1
Всего: 14



Цитата(Veitmen @  21.9.2007,  08:55 Найти цитируемый пост)
Как указать что автоматические настройки будут?

Код

        public static void SetDHCP(string nicName)
        {
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

            foreach (ManagementObject mo in mc.GetInstances())
            {
                if ((bool)mo["IPEnabled"])
                {
                    if (mo["Caption"].Equals(nicName))
                    {
                        ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder");
                        newDNS["DNSServerSearchOrder"] = null;
                        ManagementBaseObject enableDHCP = mo.InvokeMethod("EnableDHCP", null, null);
                        ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
                    }
                }
            }
        }


еще посмотрите ifconfig for windows


Это сообщение отредактировал(а) Stepan_Lameroff - 21.9.2007, 11:32
PM MAIL   Вверх
Veitmen
Дата 21.9.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 10.11.2006
Где: СПБ

Репутация: нет
Всего: 4



Еще раз спасибо!))
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0646 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.