Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Сетевые технологии (http://forum.oszone.net/forumdisplay.php?f=31)
-   -   Настройка сетевого интерфейса из командной строки <Windows, netsh> (http://forum.oszone.net/showthread.php?t=111627)

andrystepa 17-07-2008 09:43 853790

Настройка сетевого интерфейса из командной строки <Windows, netsh>
 
Понадобилось мне недавно настроить сетевой интерфейс на компьютере под управлением Windows XP SP2 из командной строки. Поискал в инете и нашел на этом сайте инструкцию: Изменяем настройки сети Там приведена такая инструкция:
Код:

С
 помощью этой подсказки вы сможете очень быстро и легко изменить ваш IP и другие настройки. Вы можете сохранить нижеприведенный текст в файл change ip.bat и запускать его тогда, когда вам нужно:     
Example:    set address name="Local Area Connection" static 10.0.5.99 255.255.255.0 10.0.5.1 1   
The syntax is:    set address [name=]InterfaceName [source=]{dhcp | static [addr=]IPAddress [mask=]SubnetMask [gateway=]{none | DefaultGateway [[gwmetric=]GatewayMetric]}}

Сделал все как написано. Сначала дал команду из командной строки:
Код:

C:\Documents and Settings\Администратор>set address name="Local2" static 169.254.37.101 255.255.0.0 169.254.37.1 1
Нифига не изменилось. Адрес какой был, такой и остался. Читаю по ссылке указанной на той же странице - она никуда не ведет, устарела. Но в тексте ссылки я заметил знакомое слово: netsh. Ищу в инете. Оказывается это и есть та самая утилита командной строки, которая настраивает сетевой интерфейс. Слегка помучавшись, я таки понял, как она работает.
Утверждения о том что для начала работы надо дать команду:
Код:

netsh interface ip
не совсем верно. Дело в том, что это три команды, и каждую надо давать по отдельности. Если дать вместе, только выскочит подсказка по применимым командам. После каждой команды в приглашение командной строки меняется:
Код:

C:\Documents and Settings\Администратор>netsh
netsh>interface
netsh interface>ip
netsh interface ip>set address name="Local2" static 169.254.37.100 255.255.0.0 1
69.254.37.1 1

Кстати в подсказке к команде указывается следующее:
Код:

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

Параметры:

      Тег            Значение
      name        - Имя этого интерфейса (строка).
      source      - Допустимо одно из следующих значений:
                    dhcp:  Устанавливает для указанного интерфейса
                            настройку IP-адресов с помощью DHCP.
                    static: Устанавливает для указанного интерфейса
                            статическую настройку IP-адресов.

      gateway      - Одно из следующих значений:
                    <IP-адрес шлюза>: IP-адрес основного шлюз для
                                      устанавливаемого статического IP-адреса.
                    none:            Основной шлюз не установлен.
      gwmetric    - Метрика основного шлюза. Этот параметр не должно быть
                    установлен, если значение параметра gateway = 'none'.
      Следующие параметры используются только если параметр source = 'static':

      addr        - IP-адрес указанного интерфейса.
      mask        - Маска подсети указанного IP-адреса.

Примечание:
        Используется для изменения режима настройки IP-адреса
        (статически или динамически). Добавляет IP-адреса к интерфейсу
        со статическим IP-адресом или добавляет основной шлюз.

Примеры:

      set address name="Подключение по локальной сети" source=dhcp
      set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1

Но там ошибка!!! То что параметр gwmetric = Метрика указан как необязательный неверно!! Если дать команду без этого параметра выскочит сообщение о неверном синтаксисе команды!

Petya V4sechkin 17-07-2008 16:30 854263

andrystepa, а вопрос какой?
Код:

netsh interface ip set address "Подключение по локальной сети" static ip-адрес маска шлюз метрика
netsh interface ip set dns "Подключение по локальной сети" static днс-сервер

(метрика = 0 обычно).
Информацию о команде можно посмотреть в хелпе (Пуск -> Справка и поддержка -> Найти -> netsh) или выполнить в командной строке:
Код:

netsh interface ip set address /?
netsh interface ip set dns /?


andrystepa 17-07-2008 21:34 854657

Petya V4sechkin,
Вопроса нет - я лишь предупреждаю, что инструкция по указанной ссылке не совсем верна, и привожу тот вариант, который работает. В приведенной инструкции про netsh ни слова.

Dirk Diggler 17-07-2008 22:43 854739

Цитата:

Цитата andrystepa
Вопроса нет - я лишь предупреждаю, что инструкция по указанной ссылке не совсем верна, »

Про метрику - это вы поторопились

andrystepa 18-07-2008 15:47 855470

Цитата:

Цитата Dirk Diggler
Цитировать »

А в чем я поторопился? Если не верите, пожалуйста, вот вывод командной консоли:
без указания метрики
Код:

C:\Documents and Settings\Администратор>netsh interface ip set address name="Loc
al2" static 169.254.37.100 255.255.0.0 169.254.37.1
Недопустимый синтаксис использованной команды. Воспользуйтесь справкой для этой
команды.

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

Параметры:

      Тег            Значение
      name        - Имя этого интерфейса (строка).
      source      - Допустимо одно из следующих значений:
                    dhcp:  Устанавливает для указанного интерфейса
                            настройку IP-адресов с помощью DHCP.
                    static: Устанавливает для указанного интерфейса
                            статическую настройку IP-адресов.

      gateway      - Одно из следующих значений:
                    <IP-адрес шлюза>: IP-адрес основного шлюз для
                                      устанавливаемого статического IP-адреса.
                    none:            Основной шлюз не установлен.
      gwmetric    - Метрика основного шлюза. Этот параметр не должно быть
                    установлен, если значение параметра gateway = 'none'.
      Следующие параметры используются только если параметр source = 'static':

      addr        - IP-адрес указанного интерфейса.
      mask        - Маска подсети указанного IP-адреса.

Примечание:
        Используется для изменения режима настройки IP-адреса
        (статически или динамически). Добавляет IP-адреса к интерфейсу
        со статическим IP-адресом или добавляет основной шлюз.

Примеры:

      set address name="Подключение по локальной сети" source=dhcp
      set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1

А теперь с указанием метрики
Код:

C:\Documents and Settings\Администратор>netsh interface ip set address name="Loc
al2" static 169.254.37.100 255.255.0.0 169.254.37.1 1
ОК.

Тут я ничего не перепутал. Цитаты я просто скопировал из окна командной строки. Так что ни убавить ни прибавить...

Dirk Diggler 18-07-2008 16:01 855489

Цитата:

Цитата andrystepa
А теперь с указанием метрики »

а теперь ВНИМАТЕЛЬНО рассмотрите синтаксис команды. ВНИМАТЕЛЬНО!

andrystepa 19-07-2008 13:54 856178

Понятно, извиняюсь. Не заметил двойных квадратных скобок. То есть в случае, если указан шлюз, надо указывать и метрику. А если шлюз не указан - метрику указывать не надо.

Dirk Diggler 19-07-2008 21:58 856476

Цитата:

Цитата andrystepa
А если шлюз не указан - метрику указывать не надо. »

Логично, не правда ли? :lol:

Dilinjer 23-09-2008 19:45 906892

Кто выложит рабочий батничек для измеения IP на удаленном компе(comp2):
Например:
comp1-локальный.
comp2 удаленный:
addr:192.168.0.99 -> 192.168.0.98
mask: 255.255.255.0 -> 255.255.255.0
gateway: 192.168.0.150 -> None

Батничек необходимо запускать на comp1.

ЗЫ: перепробовал кучу вариаций netsh - ничерта невыходит изменить АйПи-шник и шлюз :(
ЗЫЫ: На comp1 и comp2 XP_SP2_RUS , учетная запись на comp1 на удаленном компе имеет права локального администратора.

Ariasp 24-09-2008 12:30 907476

Цитата:

Цитата Dilinjer
Кто выложит рабочий батничек для измеения IP на удаленном компе(comp2):
Например:
comp1-локальный.
comp2 удаленный:
addr:192.168.0.99 -> 192.168.0.98
mask: 255.255.255.0 -> 255.255.255.0
gateway: 192.168.0.150 -> None
Батничек необходимо запускать на comp1. »

netsh interface ip set address «Подключение по локальной сети» static 192.168.0.98 255.255.255.0 none

для запуска этого скрипта на comp1 c comp2 используй psexec;

Цитата:

Цитата Dilinjer
ЗЫЫ: На comp1 и comp2 XP_SP2_RUS »

а вот здесь есть тонкий момент - имя подключения «Подключение по локальной сети» для пакетного файла надо будет перекодировать из cp1251 в дос-кодировку (ср866)

Dilinjer 25-09-2008 15:16 908536

Цитата:

Цитата Ariasp
для запуска этого скрипта на comp1 c comp2 используй psexec; »

- нада без сторонних утилит.... Ведь есть же команда netsh [-r router name] или netsh set machine [[имя_компьютера=]строка], но как я не извращался ничего невышло на удаленном компе изменить АйПи'шник. На локальном компе проблем с изменением IP и прочих сетевых настроек нету....
Вобщим все что касается синтаксиса netsh для меня слишком запутано и напросторах инета я ничего вразумительного по этому поводу нинашел :(

ЗЫ: Повторюсь, задача стоит изменит IP на удаленном компе без сторонних утилит (либо netsh [-r router name или както через WMIC) из bat'ника.... Кто может выложить рабочий (проверенный) пример ?


Время: 14:21.

Время: 14:21.
© OSzone.net 2001-