Вступление
Для смены IP в командной строке windows есть утилита netsh. Подробнее, что это такое и с чем её едят на
Batch-файлы
На этом закончим наше знакомство с netsh и перейдем к batch-файлами Windows (текстовый файл с расширением «bat»), который позволяет не только автоматизировать ввод длинных команд (в том числе и netsh-комманд), но также поможет сделать этот процесс более интересным, интерактивным и не заставит нас использовать для каждого варианта настроек отдельный файл.
Включение и отключение сетевых интерфейсов.
Отключение интерфеса
Включение и отключение сетевых подключений через powershell
Все описанные выше операции также можно выполнить и через PowerShell. Для того чтобы получить список всех сетевых подключений нужно выполнить:
Get-NetAdapter | format-list
А для выключения и включения подключений нужно использовать следующие команды:
Disable-NetAdapter -Name "Название адаптера" -Confirm:$false Enable-NetAdapter -Name "Название адаптера " -Confirm:$false
Как и в случае обычной командной строки, для выполнения данных команд, PowerShell нужно запустить с правами администратора.
Занятия bat-аникой
Создаем файл network.bat с содержимым:
Изменить настройки dns
Команда выглядит следующим образом:
Изменить настройки ip-адреса
Команда выглядит следующим образом:
C:Windowssystem32>netsh interface ip set address help Использование: set address [name=]<строка> [[source=]dhcp|static] [[address=]<IPv4-адрес>[/<целое_число>] [[mask=]<IPv4-маска>] [[gateway=]<IPv4-адрес>|none [gwmetric=]<целое_число>] [[type=]unicast|anycast] [[subinterface=]<строка>] [[store=]active|persistent] Параметры: Тег Значение name - имя или индекс интерфейса. source - одно из следующих значений: dhcp: включение DHCP для настройки IP-адресов для указанного интерфейса. static: отключение использования DHCP для настройки IP-адресов для указанного интерфейса. Это значение указывается при настройке адреса или шлюза. address - добавляемый или изменяемый IPv4-адрес, за которым может следовать длина префикса подсети. mask - маска подсети IP для указанного IP-адреса. gateway - одно из следующих значений: <IPv4-адрес>: определенный шлюз по умолчанию для задаваемого статического IP-адреса. none: шлюзы по умолчанию не задаются. Этот параметр используется по умолчанию. gwmetric - метрика шлюза по умолчанию. Это поле следует задавать только тогда, когда указан шлюз. type - одно из следующих значений: unicast: адрес задается как адрес одноадресной рассылки. Этот параметр используется по умолчанию. anycast: адрес задается как адрес произвольной рассылки. subinterface - LUID подчиненного интерфейса, на котором существует шлюз по умолчанию. Этот параметр требуется только для интерфейсов с несколькими подчиненными интерфейсами. store - одно из следующих значений: active: параметр действует только до следующей загрузки. persistent: постоянный параметр. Этот параметр используется по умолчанию. Примечания: используется для включения или отключения DHCP для настройки IP-адресов. При этом также удаляются любые предыдущие статические IP-адреса и шлюзы по умолчанию или могут быть заданы новые статические IP-адреса и шлюзы по умолчанию. Примеры: set address name="Local Area Connection" source=dhcp set address "Local Area connection" static 10.0.0.9 255.0.0.0 10.0.0.1 1
Из этого описания хорошо видно, как использовать данную команду. Замечу, что все параметры кроме name необязательны и их можно не указывать. В частности это полезно, если вы не хотите задавать шлюз или метрику.
Пример 1. Задать автоматическое получение IP-параметров по протоколу DHCP для адаптера “Подключение по локальной сети”:
netsh interface ip set address name="Подключение по локальной сети" source=dhcp или netsh interface ip set address "Подключение по локальной сети" dhcp
Пример 2. Задать статические IP-параметры для адаптера “Подключение по локальной сети” IP-адрес 213.108.211.11 с маской подсети 255.255.255.240 и шлюзом 213.108.211.10:
netsh interface ip set address name="Подключение по локальной сети" source=static address=213.108.211.11 mask=255.255.255.240 gateway=213.108.211.10 или netsh interface ip set address "Подключение по локальной сети" static 213.108.211.11 255.255.255.240 213.108.211.10
Как включить сетевой адаптер через командную строку
Включение сетевых подключений происходит аналогично, только вместо «disable» в конце команды нужно указать «enable». Таким образом команда на отключение будет выглядеть вот так:
netsh interface set interface "Название адаптера" enable
Например, для того чтобы включить подключение с названием «Ethernet 3» нужно выполнить команду «netsh interface set interface «Ethernet 3» enable».
Как отключить сетевой адаптер через командную строку
После того как вы знаете название сетевого адаптера, его можно отключить через командную строку Windows. Для этого нужно выполнить следующую команду:
netsh interface set interface "Название адаптера" disable
Например, для того чтобы отключить подключение с названием «Ethernet 3» нужно выполнить команду «netsh interface set interface «Ethernet 3» disable».
Какие ещё параметры можно изменять
Смотрим на вывод команды
C:Windowssystem32>netsh interface ip set help Применимы следующие команды: Команды в этом контексте: set address - Задает статический IP-адрес или основной шлюз для интерфейса. set compartment - Изменяет параметры конфигурации секции. set dnsservers - Установка режима DNS-сервера и адресов. set dynamicportrange - Изменяет диапазон портов, используемый для динамического назначения портов. set global - Изменяет общие параметры глобальной конфигурации. set interface - Изменяет параметры конфигурации интерфейса для IP. set neighbors - Задает адрес соседа. set route - Изменяет параметры маршрута. set subinterface - Изменяет параметры конфигурации субинтерфейса. set winsservers - Установка режима WINS-сервера и адресов.
Поскольку большинство этих параметров (кроме IP-адреса и DNS-сервера) большинству смертных не потребуется, то и описывать я их не стану. Но Вы всегда сможете получить справку по нужным параметрам, используя за образец команды выше.
Командные файлы
Каждый раз вводить команды очень утомительно. Поэтому лучше создать файл с расширением “cmd” (или более устаревший вариант “bat”), где эти команды будут записаны.
Пример 1. Применение сетевых настроек по протоколу DHCP:
netsh interface ip set address "Подключение по локальной сети" dhcp netsh interface ip set dnsserver "Подключение по локальной сети" dhcp pause
Пример 2. Применение статических сетевых настроек:
netsh interface ip set address "Подключение по локальной сети" static 213.108.213.117 255.255.255.240 213.108.213.113 netsh interface ip set dnsservers "Подключение по локальной сети" static 213.108.208.2 netsh interface ip add dnsservers "Подключение по локальной сети" 213.108.209.2 pause
Команда pause в конце скрипта не позволяет закрыться окну. Это важно, если Вы допустили ошибки при наборе команды. Когда команды написаны правильно команду “pause” можно удалить.
Внимание! В локализованных версиях Windows имена сетевых адаптеров написаны на русском языке. Символы кириллицы имеют различные кодовые страницы для Windows-приложений (обычно, графических) и приложений в командной строке. Поэтому важно сохранить файл с командами в кодировке CP866. (Стандартный блокнот не позволяет это сделать.)
Как вариант можно изменить названия сетевых адаптеров с использованием букв латинского алфавита, просто переименовав их:
Например, “wifi” или “cable”. Тогда проблем с кодировками не будет.
Как было отмечено выше, командные файлы следует запускать под пользователем с правами администратора. Самый простой способ: нажать правой кнопкой на командном файле и выбрать “Запуск от имени администратора”.
P.S. Можно также создать файлы для команды netsh с профилями, как описано тут. Но мне кажется это излишним.
Конфигурирование dns и wins серверов.
Добавить предпочитаемый DNS сервер.
netsh interface ip set dns «Local Area Connection» static 8.8.8.8
Добавить альтернативный DNS сервер.
netsh interface ip add dns «Local Area Connection» 8.8.4.4
Добавить 3-й DNS сервер.
netsh interface ip add dns «Local Area Connection» 192.168.1.30 index=3
Установка автоматического получения предпочитаемого и альтернативного dns-сервера от DHCP-сервера.
netsh interface ip set dns «Local Area Connection» dhcp
Установка WINS.
netsh interface ip set wins «Local Area Connection» static 192.168.1.240
Конфигурирование сетевых параметров (ip-адреса, сетевой маски и шлюза).
Уснановка ip-адреса, маски и шлюза.
netsh interface ip set address name=»Local Area Connection» static 192.168.1.15 255.255.255.0 192.168.1.1
гдеLocal Area Connection — название вашего сетевого интерфейса.192.168.1.15 — сетевой адрес (ip address).255.255.255.0 — сетевая маска (network mask).192.168.1.1 — шлюз (default gateway).
Установка дополнительного ip-адреса.
netsh interface ip add address name=»Local Area Connection» 192.168.1.20 255.255.255.0
Включение автоматического получения ip-адреса, сетевой маски и шлюза от DHCP-сервера.
netsh interface ip set address «Local Area Connection» dhcp
Получить список всех сетевых адаптеров
Посмотреть список всех сетевых адаптеров, можно используя команду “netsh interface ip show config”:
C:WindowsSystem32>netsh interface ip show config Настройка интерфейса "Беспроводное сетевое соединение" DHCP включен: Да IP-адрес 192.168.1.105 Префикс подсети: 192.168.1.0/24 (маска 255.255.255.0) Основной шлюз: 192.168.1.1 Метрика шлюза: 0 Метрика интерфейса: 25 DNS-серверы с настройкой через DHCP: 109.230.128.138 192.168.1.1 Зарегистрировать с суффиксом: Только основной WINS-серверы с настройкой через DHCP: Нет Настройка интерфейса "Подключение по локальной сети" DHCP включен: Да IP-адрес 192.168.1.101 Префикс подсети: 192.168.1.0/24 (маска 255.255.255.0) Основной шлюз: 192.168.1.1 Метрика шлюза: 0 Метрика интерфейса: 20 DNS-серверы с настройкой через DHCP: 109.230.128.138 192.168.1.1 Зарегистрировать с суффиксом: Только основной WINS-серверы с настройкой через DHCP: Нет
Я слегка отформатировал вывод, чтобы проще воспринималось. Самое важное в данной команде это то, как называются наши сетевые адаптеры, параметры которых мы хотим изменить. В данном случае мы имеет два адаптера с именами “Беспроводное сетевое соединение” и “Подключение по локальной сети”.
Последние приготовления
Программу macshift и батник я разместил в d:programnetwork. А на рабочий стол вынес ярлычок network.lnk. При запуске ярлыка командный файл начинает работу с вопроса о выборе настроек. Нажав «1», получаем настройки для дома, соответственно, «2» — для офиса.
Может быть кому-то данный топик окажется полезным.
Просмотр сетевых настроек.
Расширеный вывод конфигурации сетевых интерфейсов.
netsh interface ip show config
Просмотр состояния интерфейсов (connected/disconnected).
C:WindowsSystem32>netsh interface ip show interface Инд Мет MTU Состояние Имя — ———- ———- ———— ————————— 1 50 4294967295 connected Loopback Pseudo-Interface 1 12 10 1300 disconnected Local Area Connection
Просмотр таблицы маршрутизации.
netsh interface ip show route
Просмотр конфигурации IP-адресов.
netsh interface ip show addresses
Просмотр адресов DNS-сервера.
netsh interface ip show dnsservers
Просмотр адресов WINS-сервера.
netsh interface ip show winsservers
Сохранение и восстановление конфигурации сетевых интерфейсов.
Ну а теперь самое интересное. Поговорим о том, как сохранить сетевые настройки в виде файла конфигурации и восстановить из файла конфигурации. Это может пригодиться тем, кто постоянно меняет сетевые настройки.
Сохранить сетевые настройки в виде файла.
C:WindowsSystem32>netsh -c interface dump > C:my-config.txt
Восстановить сетевые настройки из файла конфигурации.
C:WindowsSystem32>netsh -f C:my-config.txt
Вот и все. Мы рассмотрели далеко не все возможности утилиты Netsh.exe, а лишь самые часто используемые. Используя коммандную строку Windows и утилиту netsh можно намного облегчить себе жизнь.
Итого
На этом можно закончить и торжественно сообщить, что Вы знаете все, что нужно для того, чтобы полностью разобраться в итоговом