Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата Skylear:
потому что внутри сессии »
У меня было такое смутное предположение — и на всякий случай уточнил.

Пока только алгоритм cmd-файла, приближенный к боевому:

1. IP вычленяется достаточно легко: для любой языковой версии операционки команда
Код: Выделить весь код
ping yandex.ru | find "[" > %TEMP%\IP_line.txt
создаёт во временном каталоге пользователя файл IP_line.txt с единственной строкой, где нужный IP (в примере — Яндекса) заключён в квадратные скобки.

2. Вычленяем из скобок этот IP и создаём файл (например, %TEMP%\srv_IP.txt) со строкой
Код: Выделить весь код
<Вычлененный адрес> srv
Файл %TEMP%\IP_line.txt оставлем для последующих проверок на тему "не изменился ли IP".

3. Проверяем файл hosts на наличие строки с окончанием "<пробел> srv" и при её наличии удаляем эту строку. Проверяем, что последняя строка файла hosts пустая (как это должно быть; она может быть непустой в случае если, например, файл правили руками и не нажали Enter после ввода последней строки); если нет — создаём в конце пустую строку (нужно для следующего шага). Сохраняем файл (при этом нужны права Администратора).

4. Дописываем (опять же с правами администратора) файл srv_IP.txt к файлу hosts:
Код: Выделить весь код
copy /b %windir%\System32\drivers\etc\hosts+%TEMP%\srv_IP.txt %windir%\System32\drivers\etc\hosts
4.1 По правилам хорошего тона (операция необязательная) стандартно удаляем файл %TEMP%\srv_IP.txt.

5. На всякий случай очищаем кэш DNS:
Код: Выделить весь код
ipconfig /flushdns
и начинаем работать.

Итого — шаги 1, 4 и 5 уже готовы в кодах практически полностью, осталось детализировать шаги 2 и 3.
Но тут надо покумекать (хотя для тех, кто часто работает с батниками, это труда не составило бы).

-------
Mikhail Zhilin


Отправлено: 02:06, 31-03-2016 | #4