Зарегистрировать адреса этого подключения в dns netsh
Я пользуюсь личным ноутбуком на работе и дома. Для доступа к сети мне приходится дважды в день менять сетевые настройки. Причем, как дома, так и в офисе есть привязка к MAC-адресу машины. Поэтому приходится также менять MAC в свойствах сетевой платы.
Чтобы как-то автоматизировать этот процесс, была запущена командная строка и поисковик. Подробности и готовый bat-файл под катом.
Вступление
Занятия bat-аникой
Создаем файл network.bat с содержимым:
@echo off
set /p mesto="Выберите настройки (1 - дом, 2 - работа): "
echo Выбраны настройки - %mesto%
if %mesto% equ 2 goto rabota
:dom
set IFACE="local"
set IP=10.160.100.9
set MASK=255.255.255.0
set GATEWAY=10.160.100.1
set GWMETRIC=1
set DNS1=10.160.100.1
set MAC=001122334455
goto smena
:rabota
set IFACE="local"
set IP=192.168.1.91
set MASK=255.255.255.0
set GATEWAY=192.168.1.1
set GWMETRIC=1
set DNS1=192.168.1.10
set MAC=221133004455
goto smena
:smena
echo Меняем MAC адрес на %MAC%
echo _____
macshift -i "local" %MAC%
echo _____
echo Устанавливаем IP адрес-%IP%
echo Маску подсети-%MASK%
echo Основной Шлюз-%GATEWAY%
netsh interface ip set address name=%IFACE% source=static addr=%IP% mask=%MASK% gateway=%GATEWAY% gwmetric=%GWMETRIC%
echo Устанавливаем основной DNS сервер %DNS1%
netsh interface ip set dns name=%IFACE% source=static addr=%DNS1% register=PRIMARY
echo Настройки сети изменены:
ipconfig /all
echo _____
pause
Обратите внимание на начало файла, после меток dom и rabota вводим свои настройки.
Примечание: «echo _____» использовано исключительно из эстетических начинаний.
Последние приготовления
Программу macshift и батник я разместил в d:\program\network. А на рабочий стол вынес ярлычок network.lnk. При запуске ярлыка командный файл начинает работу с вопроса о выборе настроек. Нажав «1», получаем настройки для дома, соответственно, «2» — для офиса.
Может быть кому-то данный топик окажется полезным.
delete iplisten
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
ipaddress | IPv4- или IPv6-адрес, удаляемый из списка прослушивания IP-адресов. Список прослушивания IP-адресов используется для определения области списка адресов, к которым привязывается служба HTTP. "0.0.0.0" означает любой IPv4-адрес, а "::" — любой IPv6-адрес. Это не распространяется на номер порта. | Обязательный |
Примеры
Ниже приведены четыре примера команды delete iplisten.
- delete iplisten ipaddress=fe80::1
- delete iplisten ipaddress=1.1.1.1
- delete iplisten ipaddress=0.0.0.0
- delete iplisten ipaddress=::
add iplisten
Добавляет новый IP-адрес в список прослушивания IP-адресов, исключая номер порта.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
ipaddress | IPv4- или IPv6-адрес, добавляемый в список прослушивания IP-адресов. Список прослушивания IP-адресов используется для определения области списка адресов, к которым привязывается служба HTTP. "0.0.0.0" означает любой IPv4-адрес, а "::" — любой IPv6-адрес. | Обязательный |
Примеры
Ниже приведены четыре примера команды add iplisten.
- add iplisten ipaddress=fe80::1
- add iplisten ipaddress=1.1.1.1
- add iplisten ipaddress=0.0.0.0
- add iplisten ipaddress=::
delete timeout
Удаляет глобальное время ожидания и возвращает значения по умолчанию для службы.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
timeouttype | Указывает тип параметра времени ожидания. | Обязательный |
Примеры
Ниже приведены два примера команды delete timeout.
- delete timeout timeouttype=idleconnectiontimeout
- delete timeout timeouttype=headerwaittimeout
Итого
На этом можно закончить и торжественно сообщить, что Вы знаете все, что нужно для того, чтобы полностью разобраться в итоговом batch-файле (есть комментарии на русском языке) и переделать его под себя. Вот ссылка на страничку гугл-проекта QNet (сделал по аналогии с Yet Another Net Switcher — спасибо автору, раньше этим не пользовался). Ах да, комментарии в batch-файлах начинаются с «rem».
P.S. Теперь ни на работе, ни дома этим скриптом почти не пользуюсь (есть DHCP), но в командировках — по-прежнему очень удобная вещь.
P.P.S. С русскоязычным названием «Подключение по локальной сети» скрипт может и не сработать, но я давно привык именовать сетевые карты как «LAN» и «WLAN».
add timeout
Добавляет глобальное время ожидания в службу.
Синтаксис
Параметры
Параметр | Описание |
---|---|
timeouttype | Тип времени ожидания для параметра. |
value | Значение времени ожидания (в секундах). Если значение указано в шестнадцатеричном формате, добавьте префикс 0x. |
Примеры
Ниже приведены два примера команды add timeout.
- add timeout timeouttype=idleconnectiontimeout value=120
- add timeout timeouttype=headerwaittimeout value=0x40
show iplisten
Показывает все IP-адреса в списке прослушивания IP-адресов. Список прослушивания IP-адресов используется для определения области списка адресов, к которым привязывается служба HTTP. "0.0.0.0" означает любой IPv4-адрес, а "::" — любой IPv6-адрес.
Синтаксис
add urlacl
Добавляет запись резервирования универсального указателя ресурсов (URL). Эта команда резервирует URL-адрес для пользователей и учетных записей без прав администратора. Список DACL можно указать с помощью имени учетной записи NT с параметрами listen и delegate либо с помощью строки SDDL.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
url | Указывает полный URL-адрес. | Обязательный |
user | Указывает имя пользователя или группы пользователей. | Обязательный |
listen | Указывает одно из следующих значений. yes — разрешает пользователю регистрировать URL-адреса. Это значение по умолчанию. no — запрещает пользователю регистрировать URL-адреса. | Необязательный |
delegate | Указывает одно из следующих значений. yes — разрешает пользователю делегировать URL-адреса. no — запрещает пользователю делегировать URL-адреса. Это значение по умолчанию. | Необязательный |
sddl | Указывает строку SDDL, описывающую список DACL. | Необязательный |
Примеры
Ниже приведены четыре примера команды add urlacl.
Итого
На этом можно закончить и торжественно сообщить, что Вы знаете все, что нужно для того, чтобы полностью разобраться в итоговом batch-файле (есть комментарии на русском языке) и переделать его под себя. Вот ссылка на страничку гугл-проекта QNet (сделал по аналогии с Yet Another Net Switcher — спасибо автору, раньше этим не пользовался). Ах да, комментарии в batch-файлах начинаются с «rem».
P.S. Теперь ни на работе, ни дома этим скриптом почти не пользуюсь (есть DHCP), но в командировках — по-прежнему очень удобная вещь.
P.P.S. С русскоязычным названием «Подключение по локальной сети» скрипт может и не сработать, но я давно привык именовать сетевые карты как «LAN» и «WLAN».
Года полтора назад была у меня такая рутинная работа: приходя на работу – вводить IP-адрес, маску, шлюз, DNS для Ethernet-порта ноутбука, а приходя домой – менять все эти параметры на другие. Первое время я мирился, но длилось это недолго – ну как можно каждый день делать одно и то же!? Тогда и вышел я на след Windows-утилиты netsh, которая, вкупе с batch-файлом дала возможность делать то же самое, но гораздо (!) быстрее и удобнее (используя стандартные средства Windows и всего один текстовый файл).
Здесь утилита netsh уже была немного описана, но я предлагаю другую реализацию, возможности которой будут более гибкими.
show timeout
Синтаксис
Netsh
Итак, поигравшись с netsh на Windows 7 (для Windows XP синтаксис немного меняется) я обнаружил, что можно присвоить интерфейсу (в приведенном ниже примере — интерфейсу под названием «LAN») IP-адрес, маску и шлюз с помощью команды:
Команды, понятное дело, вводятся в командной строке Windows. Если параметры отказываются изменяться — запускаем cmd от имени администратора.
Если понадобится добавить еще один IP-адрес, то используем:
Две следующие команды очищают список DNS-серверов и выставляют IP-адрес 212.154.163.162 первым в списке DNS-серверов:
Чтобы предоставить возможность назначения сетевых параметров DHCP-серверу используем:
Ну и для отображения текущих параметров можно использовать:
delete timeout
Deletes a global timeout and makes the service revert to default values.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
timeouttype | Specifies the type of timeout setting. | Required |
Examples
Following are two examples of the delete timeout command.
- delete timeout timeouttype=idleconnectiontimeout
- delete timeout timeouttype=headerwaittimeout
flush logbuffer
Очищает внутренние буферы файлов журнала.
Синтаксис
Netsh
Итак, поигравшись с netsh на Windows 7 (для Windows XP синтаксис немного меняется) я обнаружил, что можно присвоить интерфейсу (в приведенном ниже примере — интерфейсу под названием «LAN») IP-адрес, маску и шлюз с помощью команды:
Команды, понятное дело, вводятся в командной строке Windows. Если параметры отказываются изменяться — запускаем cmd от имени администратора.
Если понадобится добавить еще один IP-адрес, то используем:
Две следующие команды очищают список DNS-серверов и выставляют IP-адрес 212.154.163.162 первым в списке DNS-серверов:
Чтобы предоставить возможность назначения сетевых параметров DHCP-серверу используем:
Ну и для отображения текущих параметров можно использовать:
delete sslcert
Удаляет привязки SSL-сертификата сервера и соответствующие политики сертификатов клиента для IP-адреса и порта.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
ipport | Указывает адрес или порт IPv4 или IPv6, для которого удаляются привязки SSL-сертификатов. Знак двоеточия (":") используется в качестве разделителя IP-адреса и номера порта. | Обязательный |
Примеры
Ниже приведены три примера команды delete sslcert.
- delete sslcert ipport=1.1.1.1:443
- delete sslcert ipport=0.0.0.0:443
- delete sslcert ipport=[::]:443
add urlacl
Adds a Uniform Resource Locator (URL) reservation entry. This command reserves the URL for non-administrator users and accounts. The DACL can be specified by using an NT account name with the listen and delegate parameters or by using an SDDL string.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
url | Specifies the fully qualified Uniform Resource Locator (URL). | Required |
user | Specifies the user or user-group name | Required |
listen | Specifies one of the following values: yes: Allow the user to register URLs. This is the default value. no: Deny the user from registering URLs. | Optional |
delegate | Specifies one of the following values: yes: Allow the user to delegate URLs no: Deny the user from delegating URLs. This is the default value. | Optional |
sddl | Specifies an SDDL string that describes the DACL. | Optional |
Examples
Following are four examples of the add urlacl command.
show timeout
Syntax
add sslcert
Добавляет новую привязку SSL-сертификата сервера и соответствующие политики клиентских сертификатов для IP-адреса и порта.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
ipport | Указывает IP-адрес и порт для привязки. Знак двоеточия (":") используется в качестве разделителя IP-адреса и номера порта. | Обязательный |
certhash | Указывает хэш SHA сертификата. Длина этого хэша — 20 байт, и он задается в виде шестнадцатеричной строки. | Обязательный |
appid | Указывает GUID для обозначения приложения-владельца. | Обязательный |
certstorename | Указывает имя для хранения сертификата. По умолчанию — MY. Сертификат должен храниться в контексте локального компьютера. | Необязательный |
verifyclientcertrevocation | Указывает, включена или отключена проверка отзыва сертификатов клиента. | Необязательный |
verifyrevocationwithcachedclientcertonly | Указывает, включена или отключена возможность использовать только кэшированный сертификат клиента для проверки отзыва. | Необязательный |
usagecheck | Указывает, включена или отключена проверка использования. По умолчанию она включена. | Необязательный |
revocationfreshnesstime | Указывает интервал времени (в секундах) для проверки обновления списка отзыва сертификатов. Если это значение равно нулю, новый список отзыва сертификатов обновляется только в случае истечения срока действия предыдущего. | Необязательный |
urlretrievaltimeout | Указывает интервал времени ожидания (в миллисекундах) после попытки получить список отзыва сертификатов для удаленного URL-адреса. | Необязательный |
sslctlidentifier | Указывает список издателей сертификатов, которые могут быть доверенными. Этот список может быть подмножеством издателей сертификатов, которые являются доверенными для компьютера. | Необязательный |
sslctlstorename | Указывает имя для хранения сертификата в LOCAL_MACHINE, где хранится SslCtlIdentifier. | Необязательный |
dsmapperusage | Указывает, включены или отключены модули сопоставления DS. По умолчанию они отключены. | Необязательный |
clientcertnegotiation | Указывает, включено или отключено согласование сертификата. По умолчанию оно отключено. | Необязательный |
Примеры
Ниже приведен пример команды add sslcert.
add sslcert ipport=1.1.1.1:443 certhash=0102030405060708090A0B0C0D0E0F1011121314 appid=
delete sslcert
Deletes SSL server certificate bindings and corresponding client certificate policies for an IP address and port.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
ipport | Specifies the IPv4 or IPv6 address and port for which the SSL certificate bindings get deleted. A colon character (:) is used as a delimiter between the IP address and the port number. | Required |
Examples
Following are three examples of the delete sslcert command.
- delete sslcert ipport=1.1.1.1:443
- delete sslcert ipport=0.0.0.0:443
- delete sslcert ipport=[::]:443
add sslcert
Adds a new SSL server certificate binding and corresponding client certificate policies for an IP address and port.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
ipport | Specifies the IP address and port for the binding. A colon character (:) is used as a delimiter between the IP address and the port number. | Required |
certhash | Specifies the SHA hash of the certificate. This hash is 20 bytes long and is specified as a hexadecimal string. | Required |
appid | Specifies the GUID to identify the owning application. | Required |
certstorename | Specifies the store name for the certificate. Defaults to MY. Certificate must be stored in the local machine context. | Optional |
verifyclientcertrevocation | Specifies the Turns on/off verification of revocation of client certificates. | Optional |
verifyrevocationwithcachedclientcertonly | Specifies whether the usage of only cached client certificate for revocation checking is enabled or disabled. | Optional |
usagecheck | Specifies whether the usage check is enabled or disabled. Default is enabled. | Optional |
revocationfreshnesstime | Specifies the time interval, in seconds, to check for an updated certificate revocation list (CRL). If this value is zero, then the new CRL is updated only if the previous one expires. | Optional |
urlretrievaltimeout | Specifies the timeout interval (in milliseconds) after the attempt to retrieve the certificate revocation list for the remote URL. | Optional |
sslctlidentifier | Specifies the list of the certificate issuers that can be trusted. This list can be a subset of the certificate issuers that are trusted by the computer. | Optional |
sslctlstorename | Specifies the certificate store name under LOCAL_MACHINE where SslCtlIdentifier is stored. | Optional |
dsmapperusage | Specifies whether DS mappers is enabled or disabled. Default is disabled. | Optional |
clientcertnegotiation | Specifies whether the negotiation of certificate is enabled or disabled. Default is disabled. | Optional |
Examples
Following is an example of the add sslcert command.
add sslcert ipport=1.1.1.1:443 certhash=0102030405060708090A0B0C0D0E0F1011121314 appid=
show cachestate
Синтаксис
Параметры
Примеры
Ниже приведены два примера команды show cachestate.
Batch-файлы
На этом закончим наше знакомство с netsh и перейдем к batch-файлами Windows (текстовый файл с расширением «bat»), который позволяет не только автоматизировать ввод длинных команд (в том числе и netsh-комманд), но также поможет сделать этот процесс более интересным, интерактивным и не заставит нас использовать для каждого варианта настроек отдельный файл.
Для вывода на экран используется команда «ECHO» (она будет использоваться для вывода своеобразного меню):
Для условного перехода к метке воспользуемся связкой «IF» и «GOTO» (если кто знает, можно ли использовать Case — буду рад упростить итоговый скрипт):
Для обозначения метки (в нашем случае метки «one») используется двоеточие:
add iplisten
Adds a new IP address to the IP listen list, excluding the port number.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
ipaddress | The IPv4 or IPv6 address to be added to the IP listen list. The IP listen list is used to scope the list of addresses to which the HTTP service binds. "0.0.0.0" means any IPv4 address and "::" means any IPv6 address. | Required |
Examples
Following are four examples of the add iplisten command.
- add iplisten ipaddress=fe80::1
- add iplisten ipaddress=1.1.1.1
- add iplisten ipaddress=0.0.0.0
- add iplisten ipaddress=::
show iplisten
Displays all IP addresses in the IP listen list. The IP listen list is used to scope the list of addresses to which the HTTP service binds. "0.0.0.0" means any IPv4 address and "::" means any IPv6 address.
Syntax
show cachestate
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
url | Specifies the fully qualified URL that you want to display. If not specified, display all URLs. The URL could also be a prefix to registered URLs. | Optional |
Examples
Following are two examples of the show cachestate command:
show servicestate
Syntax
Parameters
Examples
Following are two examples of the show servicestate command.
- show servicestate view="session"
- show servicestate view="requestq"
show servicestate
Синтаксис
Параметры
Примеры
Ниже приведены два примера команды show servicestate.
- show servicestate view="session"
- show servicestate view="requestq"
Batch-файлы
На этом закончим наше знакомство с netsh и перейдем к batch-файлами Windows (текстовый файл с расширением «bat»), который позволяет не только автоматизировать ввод длинных команд (в том числе и netsh-комманд), но также поможет сделать этот процесс более интересным, интерактивным и не заставит нас использовать для каждого варианта настроек отдельный файл.
Для вывода на экран используется команда «ECHO» (она будет использоваться для вывода своеобразного меню):
Для условного перехода к метке воспользуемся связкой «IF» и «GOTO» (если кто знает, можно ли использовать Case — буду рад упростить итоговый скрипт):
Для обозначения метки (в нашем случае метки «one») используется двоеточие:
delete cache
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
url | Указывает полный URL-адрес, который необходимо удалить. | Необязательный |
recursive | Указывает, будут ли удалены все записи в кэше URL-адресов. yes — все записи будут удалены, no — записи не будут удалены. | Необязательный |
Примеры
Ниже приведены два примера команды delete cache.
delete urlacl
Удаляет резервирования URL-адресов.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
url | Указывает полный URL-адрес, который необходимо удалить. | Обязательный |
Примеры
Ниже приведены два примера команды delete urlacl.
show sslcert
Displays Secure Sockets Layer (SSL) server certificate bindings and corresponding client certificate policies for an IP address and port.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
ipport | Specifies the IPv4 or IPv6 address and port for which the SSL certificate bindings display. A colon character (:) is used as a delimiter between the IP address and the port number. If you do not specify ipport, all bindings are displayed. | Required |
Examples
Following are five examples of the show sslcert command.
- show sslcert ipport=[fe80::1]:443
- show sslcert ipport=1.1.1.1:443
- show sslcert ipport=0.0.0.0:443
- show sslcert ipport=[::]:443
- show sslcert
delete cache
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
url | Specifies the fully qualified Uniform Resource Locator (URL) that you want to delete. | Optional |
recursive | Specifies whether all entries under the url cache get removed. yes: remove all entries no: do not remove all entries | Optional |
Examples
Following are two examples of the delete cache command.
delete iplisten
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
ipaddress | The IPv4 or IPv6 address to be deleted from the IP listen list. The IP listen list is used to scope the list of addresses to which the HTTP service binds. "0.0.0.0" means any IPv4 address and "::" means any IPv6 address. This does not include the port number. | Required |
Examples
Following are four examples of the delete iplisten command.
- delete iplisten ipaddress=fe80::1
- delete iplisten ipaddress=1.1.1.1
- delete iplisten ipaddress=0.0.0.0
- delete iplisten ipaddress=::
flush logbuffer
Flushes the internal buffers for the logfiles.
Syntax
delete urlacl
Deletes URL reservations.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
url | Specifies the fully qualified Uniform Resource Locator (URL) that you want to delete. | Required |
Examples
Following are two examples of the delete urlacl command.
add timeout
Adds a global timeout to the service.
Syntax
Parameters
Parameter | Description |
---|---|
timeouttype | Type of timeout for setting. |
value | Value of the timeout (in seconds). If the value is in hexadecimal notation, then add the prefix 0x. |
Examples
Following are two examples of the add timeout command.
- add timeout timeouttype=idleconnectiontimeout value=120
- add timeout timeouttype=headerwaittimeout value=0x40
show sslcert
Показывает привязки SSL-сертификата сервера и соответствующие политики сертификатов клиента для IP-адреса и порта.
Синтаксис
Параметры
Параметр | Описание | Требование |
---|---|---|
ipport | Указывает IPv4- или IPv6-адрес или порт, для которого отображаются привязки SSL-сертификатов. Знак двоеточия (":") используется в качестве разделителя IP-адреса и номера порта. Если не указан параметр ipport, отображаются все привязки. | Обязательный |
Примеры
Ниже приведены пять примеров команды show sslcert.
- show sslcert ipport=[fe80::1]:443
- show sslcert ipport=1.1.1.1:443
- show sslcert ipport=0.0.0.0:443
- show sslcert ipport=[::]:443
- show sslcert
show urlacl
Displays discretionary access control lists (DACLs) for the specified reserved URL or all reserved URLs.
Syntax
Parameters
Parameter | Description | Requirement |
---|---|---|
url | Specifies the fully qualified URL that you want to display. If not specified, display all URLs. | Optional |
Examples
Following are three examples of the show urlacl command.
Года полтора назад была у меня такая рутинная работа: приходя на работу – вводить IP-адрес, маску, шлюз, DNS для Ethernet-порта ноутбука, а приходя домой – менять все эти параметры на другие. Первое время я мирился, но длилось это недолго – ну как можно каждый день делать одно и то же!? Тогда и вышел я на след Windows-утилиты netsh, которая, вкупе с batch-файлом дала возможность делать то же самое, но гораздо (!) быстрее и удобнее (используя стандартные средства Windows и всего один текстовый файл).
Здесь утилита netsh уже была немного описана, но я предлагаю другую реализацию, возможности которой будут более гибкими.
show urlacl
Показывает списки управления доступом на уровне пользователей (DACL) для указанного зарезервированного URL-адреса или всех зарезервированных URL-адресов.
Читайте также: