Как изменить IP адрес компьютера из пакетного файла
IP адрес можно изменить при помощи команды netsh. Чтобы правильно сменить IP адрес, сначала надо выяснить текущую конфигурацию. Сделать это можно в командной строке при помощи команды netsh interface ip show address
Результат работы этой команды - отображение текущей конфигурации сетевого интерфейса. Нас интересует название интерфейса. Предположим, что он называется FASTNET, и нужно сменить IP адрес на 192.168.1.42, адресация в сети статическая, без использования DHCP, шлюз 192.168.1.1, маска 255.255.255.0 В этом случае, команда, которая должна быть выполнена из пакетного файла будет выглядеть следующим образом: netsh interface ip set address name="FASTNET" static 192.168.1.42 255.255.255.0 192.169.1.1 1
После выполнения этой команды у интерфейса FASTNET, IP адрес сменится на 192.168.1.42. Команда netsh предоставляет широкие возможности по управлению сетевыми настройками из командной строки. Для ознакомления с другими ее функциональными возможностями пользуйтесь справкой при помощи netsh /?.
Ну что, Вы озабоченно полезли в help по команде netsh, в надежде разобраться, как правильно ей пользоваться? Хмм... От всей души желаю успеха в этом непростом занятии. А теперь... внимание! Забудьте всю муть, что прочитали выше. Наиболее удобный метод работы с netsh - скармливание ему конфигурационных сценариев. Тогда IP меняется одним щелчком мышки, и не надо париться с изучением опций netsh. Вот как это делается:
- стандартным способом настраиваются параметры сетевого интерфейса[ов] (через Сетевые подключения и свойства требуемого сетевого подключения). - после того, как сделанные настройки вошли в силу, выполняем команду netsh dump >cfg01.txt. Она выводит всю текущую конфигурацию сетевых настроек в сценарий cfg01.txt. - вышеуказанные операции повторяем для всех необходимых сетевых конфигураций. Для каждой конфигурации указываем индивидуальное имя сценария (например, cfg02.txt, cfg03.txt, cfg04.txt и т. д.). - создаём командные файлы для установки каждой конфигурации с таким содержимым: netsh exec cfg0x.txt Эта команда будет настраивать сетевые параметры, которые были сохранены в файле cfg0x.txt.
Всё! Наслаждаемся полученным результатом - больше никогда не понадобится лезть в свойства сетевого интерфейса и муторно вводить вручную циферки, боясь при этом ошибиться. Параметры будут вступать в действие немедленно после окончания работы сценария - работает с DHCP и даже со всеми дополнительными параметрами (DNS, WINS). По поводу такого конфигурирования можно сделать несколько замечаний (выяснено путём эксперимента): - галочки служб закладки “Общие” - Clients for Microsoft Networks, File and Printer Sharing for Microsoft Networks не могут быть сконфигурированы таким образом (установлены или сброшены). - в сценарий пишется много лишнего (настраивается маршрутизация, RAS, IGMP и проч., и проч.). Для простой смены IP-адреса можно оставить только 2 секции сценария - сброс интерфейса и назначение параметров IP.
Например, этот сценарий у меня успешно настраивал назначение адреса с помощью DHCP:
#======================== # Конфигурация интерфейса #======================== pushd interface reset all popd # Конец конфигурации интерфейса
# ----------------------------------------- # Настройка IP-интерфейсов # ----------------------------------------- pushd interface ip # Интерфейс настройки IP для "LocalLAN" set address name="LocalLAN" source=dhcp set dns name="LocalLAN" source=dhcp register=NONE set wins name="LocalLAN" source=static addr=192.168.0.1 popd # Конец настройки интерфейса IP
А этот сценарий назначал статический IP для прямого подключения (без промежуточного роутера и файервола) к ADSL-провайдеру:
#======================== # Конфигурация интерфейса #======================== pushd interface reset all popd # Конец конфигурации интерфейса
# ----------------------------------------- # Настройка IP-интерфейсов # ----------------------------------------- pushd interface ip # Интерфейс настройки IP для "LocalLAN" set address name="LocalLAN" source=static addr=213.147.35.99 mask=255.255.255.248 set address name="LocalLAN" gateway=213.147.35.97 gwmetric=0 set dns name="LocalLAN" source=static addr=195.34.32.116 register=NONE add dns name="LocalLAN" addr=212.188.4.10 index=2 set wins name="LocalLAN" source=static addr=none popd # Конец настройки интерфейса IP
Еще примеры. Смена IP, netmask и шлюза по умолчанию (<Interface name> это к примеру "Подключение по локальной сети". Замечено, команда отрабатывает быстрее если к изменяемому интерфейсу не подключен сетевой кабель.): netsh interface ip set address "<Interface name>" source=static 192.168.1.2 255.255.255.0 192.168.1.1 1
Смена первичного и вторичного dns: netsh interface ip set dns "<Interface name>" static 192.168.1.100 netsh interface ip add dns "<Interface name>" 192.168.1.101