http://sulfurzona.ru/
News
Service
Magazine
Software (Battle City Game, Wallpaper manager, Superpad, VG-NOW, Puzzle Game, Netler Internet Browser, ..)
Wing-Thunder Game (fly simulator)
Dune Game (Dune III, Dune IV, Cheats, Forum, ..)
Games free
Turbo Pascal (Assembler, Docs, Sources, Debbugers, ..)
Books (Docs for developers)
Guest book
Компьютерная диагностика двигателя автомобиля (адаптер К-линии)Компьютерная диагностика двигателя автомобиля (адаптер К-линии)
 
 
Скачать игру Крыло-Гром (Wing-Thunder) бесплатно
 
 

VPN: Автостарт

 
Автор: Владислав Демьянишин
 
Дорогая редакция журнала “Компьютер”! В журнале от 9-10`2009 в статье про Флешку-вора был показан прием с написанием .bat-файла. Опубликуйте, пожалуйста, еще пример применения батников.
vlados20097@…
 
Читатель не назвался, но, судя по всему, очень заинтересовался возможностями BAT-файлов. А тут еще одно письмо уже читательницы:
 
Здравствуйте!
Давно читаю ваш журнал. Очень нравится. Не знаю, вот хочу задать вопрос. У меня Интернет подключается через VPN-соединение. В связи с этим приходится каждый раз запускать его вручную. Нельзя ли сделать так, чтобы оно подключалось автоматически?
Спасибо. Елена.
 
Спасибо, Елена, вы как раз подсказали нам тему для очередного примера применения “батников”. В некоторых случаях они могут оказаться весьма полезными.
Действительно, это ведь так неудобно, когда доступ к сети Интернет реализуется по VPN (от англ. Virtual Private Network – виртуальная частная сеть – обобщенное название технологий, позволяющих обеспечить одно или несколько сетевых соединений поверх другой сети).
 
При включении компьютера пользователю приходится каждый раз запускать VPN-соединение вручную. Такая же необходимость возникает при выходе компьютера из “спящего режима”, при котором сетевое соединение разрывается.
 
Физика самого процесса такова, что при включении компьютера загружается операционная система. Она-то и “пробегается” по всем используемым в текущей конфигурации устройствам и если обнаруживает сетевую карту, то автоматически соединяется с провайдером (поставщиком услуги Интернет), если сетевая карта компьютера подключена сетевым кабелем к провайдеру.
 
В случае прямого соединения сразу же происходит коннект и с сетью Интернет. А вот в случае с VPN пользователь еще должен активировать вход в частную сеть (ярлык уже должен быть создан в меню Пуск > Настройка > Сетевые подключения), ввести свой логин и пароль.
 
И лишь не многие пользователи знают, что процесс включения VPN можно автоматизировать. При этом не понадобится вводить логин и пароль. Достаточно будет одного клика по специальному ярлыку.
 
На минутку отвлекусь и скажу, что в данной статье не будет описания, как подключиться к провайдеру и настроить соединение. Оно уже должно быть у вас настроено. Предполагается, что пользователь уже получил у провайдера логин и пароль для своего соединения.
 

Создание batch (.BAT) файла

Batch или BAT-файл – это небольшая программка, состоящая из консольных команд операционной системы. Многие команды перекочевали в Windows еще из старенькой MS-DOS, но по-прежнему верно служат тем пользователям, которые умеет ими пользоваться.
 
Включение VPN можно осуществлять через автозапуск при каждом старте ОС. Достаточно написать небольшой скрипт программы. Этим сейчас и займемся. Простейшим решением напрашивается консольная команда
 
rasdial.exe vpn_name login password
 
набранная в любом текстовом редакторе, скажем, в Блокноте, и сохраненная в файл с именем, например, “vpn_start.bat”. Пускай, для быстрого поиска, сохраним файл на диске C. Давайте разберем эту строку по порядку.
 
rasdial.exe – это системная утилита находится в системной папке C:/Windows/System32. По своей сути это интерфейс связи из командной строки для клиента службы удаленного доступа – так характеризуется она компанией Microsoft.
 
При ее использовании можно закрывать интернет-соединение нажатием пары горячих клавиш. Разрыв связи происходит мгновенно, что может сэкономить средства не только на трафике, но и на телефонном счету (актуально тем, у кого Dial-up). К тому же это просто очень удобно.
 
Для того чтобы воспользоваться этой функцией, необходимо в контекстном меню рабочего стола выбрать пункт Создать > Ярлык. Когда ОС попросит указать размещение объекта, необходимо написать следующий путь к файлу утилиты и ключ “/disconnect”: %windir%/system32/rasdial.exe /disconnect.
Более детальное описание этой утилиты поищите в сети. Ну а в данном случае будем говорить о создании соединения.
 
vpn_name – первый параметр должен содержать имя уже созданного VPN-соединения. Если название содержит, например, пробел, то название лучше заключить в двойные кавычки.
login и password – далее указываются логин и пароль.
 
После этого, если кабельное соединение уже установлено, но VPN-соединения еще нет, то достаточно запустить созданный нами файл vpn_start.bat через Проводник (файловый менеджер) или по его ярлыку и VPN тут же включится.
 
Недостаток такого решения в том, что попытка включения VPN в нем выполняется лишь раз и если при автозапуске наша консольная команда выполнится немного раньше, чем будет включено кабельное соединение, то мы потерпим неудачу.
 

Умный стартер для VPN

Давайте же определимся с нашей задачей. Прежде всего, нам необходимо отследить момент включения кабельного соединения, попросту дождаться его, затем попытаться включить VPN. Тогда могу предложить следующий скрипт:
 
@echo off
set name="Sarlink VPN"
set login=mylogin
set passwd=mypassword
set timeout=10
set count=0
 
:pinging
echo Waiting %timeout% sec ...
ping 0.0.0.0 -w 1000 -n %timeout% > nul
 
:dialing
set /a count=count+1
echo Connecting...try %count%-st
 rasdial %name% %login% %passwd% > nul && echo Connected. ¦¦ goto pinging
echo DONE.
 
Набираем текст этого скрипта в Блокноте, сохраняем в файл vpn_start.bat, создаем ярлык для него и помещаем ярлык в Пуск > Программы > Автозагрузка. Все, дело сделано.
 
При очередной загрузке операционной системы откроется окошко с выполняющимся нашим скриптом, который дождется благоприятных условий для включения VPN – и вот мы в Интернете без лишних усилий.
 

Разбор полетов

Собственно, этого достаточно и данную часть статьи можно пропустить, если, конечно, вам не интересно, как это работает. Следующий блок скрипта
 
set name="Sarlink VPN"
set login=mylogin
set passwd=mypassword
set timeout=10
set count=0
 
ни что иное, как объявление переменных и их значений. Пускай в переменных хранится название нашего VPN-соединения name, наш логин login, пароль passwd, временная пауза между попытками timeout (таймаут) и количество попыток count.
 
Далее ставим метку “:pinging” после двоеточия. Она нам будет нужна для перескакивания выполнения скрипта по условию. Следующая строка содержит команду echo и, выводимую ей, информацию.
 
Выводимая строка содержит слово “Waiting” имя переменной timeout, обязательно заключенное в знаки процента. Вывод этой строки будет сигнализировать о том, что скрипт выполняет этап ожидания продолжительностью в 10 секунд.
 
Далее следует команда ping в несвойственной ей роли. При указанных параметрах эта команда просто обеспечивает нам временную задержку на 10 секунд перед очередной попыткой соединения.
 
:pinging
echo Waiting %timeout% sec ...
ping 0.0.0.0 -w 1000 -n %timeout% > nul
 
Ну и кульминационная часть нашего скрипта:
 
:dialing
set /a count=count+1
echo Connecting...try %count%-st
 rasdial %name% %login% %passwd% > nul && echo Connected. ¦¦ goto pinging
echo DONE.
 
Где мы снова ставим метку, но уже с именем “dialing”. В данном случае метка нам нужна лишь для того, чтобы разделить скрипт на две отдельные части (этапы) для наглядности.
 
Затем командой set выполняем арифметическое наращивание переменной count на единицу. После этого команда echo выводит сообщение о начале очередной попытки соединения с текущим номером счетчика count. Это удобно, поскольку будет наглядно видно, с какой попытки мы одержали удачу.
Наконец следует долгожданная команда rasdial с указанным именем соединения, логином, паролем. А за ней следует условие, которое в случае успеха командой echo выведет надпись “Connected” и скрипт завершит свою работу, выводом надписи “DONE”.
 
В случае же неудачи условие направит выполнение скрипта на команду, следующую после метки “pinging” и наш скрипт начнет очередной виток выполнения. Вот, собственно, и весь фокус.
 
Более детально ознакомится с синтаксисом консольных команд и их параметрами можно по следующим адресам:
 
http://www.rsdn.ru/article/winshell/batanyca.xml
http://www.cmdhelp.ru/index.php?commands
 
Особенно внимательные из вас, наверное, уже заприметили, что в предложенном скрипте я указал название VPN-соединения “Starlink VPN” московского провайдера Starlink.
 
Все дело в том, что это письмо читателя и, что мне особенно приятно ;), читательницы, застало меня в Москве, где я периодически бываю и не перестаю держать руку на пульсе событий и стараюсь отвечать на вопросы наших дорогих читателей.
 
© Владислав Демьянишин
 
 
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на MIDLetPascal, Turbo Pascal 6, Turbo Pascal 7, Borland Pascal, по программированию устройств Sound Blaster, Adlib, VESA BIOS, справочник Norton Guide и много другой полезной информации для программистов, включая примеры решения реальных задач по созданию резидентных программ.
 

Журнал > FAQ: Вопросы и ответы > VPN: Автостарт
 
 
 
 
 
 
На главную страницу На предыдущую страницу На начало страницы