среда, 7 апреля 2010 г.

Быстрое изменение параметров конфигурации протокола TCP/IP

На уникальность знаний не претендую, но хотелось бы поделиться опытом.

Проблема передо мной встала следующая: на компьютере с одной сетевой картой используется несколько вариантов параметров сети (для каждого провайдера своя). Менять настройки вручную каждый раз естественно лень:) Поэтому нужно этот процесс автоматизировать.

Решение же этой проблемы очень простое и, занимая буквально пару минут, экономит в будущем время и нервы. Я выделил два способа: первый позволяет настроить лишь конкретные параметры, а второй копирует дамп всех параметров в отдельный файл. Имхо, первый способ аккуратнее, а второй легче для новичка.

Способ 1 - Изменение конкретных параметров конфигурации протокола TCP/IP.
Создаем два текстовых файла с расширением bat: "my_provider1.bat" и "my_provider2.bat". Где "my_provider1" и "my_provider2" это, например, имена Ваших провайдеров. Для наглядности привожу содержание созданных мною файлов.

Содержание файла my_provider1.bat:
netsh interface ip set address "Подключение по локальной сети" static 192.168.200.149 255.255.255.0 192.168.200.1 0
netsh interface ip set dns "Подключение по локальной сети" static 213.184.224.37 primary
netsh interface ip add dns "Подключение по локальной сети" 213.184.225.254 2

Содержание файла my_provider2.bat:
netsh interface ip set address "Подключение по локальной сети" dhcp
netsh interface ip set dns "Подключение по локальной сети" dhcp

Разобраться в этих файлах при помощи интуиции не трудно, но на всякий случай остановлюсь поподробнее. Итак, Netsh - это программа с командной строкой, которая позволяет изменять параметры конфигурации сети. Запись "netsh interface ip" позволяет использовать команды для изменения конфигурации протокола TCP/IP.

Далее привожу описания использованных мною команд:


set address - команда для настройки IP-адреса и основного шлюза для указанного интерфейса. 

Синтаксис:
set address [name=]имя_интерфейса [source=]{dhcp | static [addr=]IP-адрес [mask=]маска_подсети [gateway=]{none | основной_шлюз [[gwmetric=]метрика_шлюза]}}


set dns - команда для настройки адреса сервера DNS для указанного интерфейса. 

Синтаксис:
set dns [name=]имя_интерфейса [source=]{dhcp | static }[addr=]{адрес_IP | none} [register=]{none | primary | both} 


add dns - команда для добавления сервера DNS в список серверов DNS указанного интерфейса. 

Cинтаксис:
add dns [name=]имя_интерфейса [addr=] адрес_DNS [[index=]индекс_DNS]



Примечания:
1. Здесь описаны ВСЕ команды Netsh для интерфейса IP.
2. Узнать "имя_интерфейса" можно тут: Панель управления->Сетевые подключения.
3. Единственная проблемка, с которой я столкнулся, это кодировка. Командная строка напрочь отказалась принимать кодировку используемую в windows. Оказалось, что файл должен быть написан в кодировке DOS.

Итак, бросаем ярлыки на рабочий стол и... вуаля!

Способ 2 - Дамп конфигурации сети.
Создаем (желательно в одной папке) четыре bat-файла:
1. "provider1_dump.bat", следующего содержания:
netsh dump > provider1.cfg
2. "provider2_dump.bat", следующего содержания:
netsh dump > provider2.cfg
3. "provider1_set.bat", следующего содержания:
netsh exec provider1.cfg
4. "provider2_set.bat", следующего содержания:
netsh exec provider2.cfg
Где "provider1" и "provider2" это, например, имена Ваших провайдеров.Настраиваем сеть для "provider1" и запускаем первый файл. Затем меняем настройки для "provider2" и запускаем второй файл. В папке появились два конфигурационных файла содержащие дамп настроек сети для каждого случая. Теперь при запуске третьего файла будут установлены настройки для "provider1", а при запуске четвертого - настройки для "provider2".
Опять же для удобства бросаем ярлыки на рабочий стол.

Комментариев нет:

Отправить комментарий