обнаружение VPN-подключения в Windows? - PullRequest
2 голосов
/ 06 июля 2010

Есть ли способ определить, подключен ли я к VPN с помощью стандартных API Windows в C?

В основном у меня есть клиент, который должен синхронизироваться с сервером, но только если VPN подключен.Это может быть стандартный Windows VPN-клиент или Citrix.

Помогает ли здесь RAS?

спасибо, код приветствуется.

РЕДАКТИРОВАТЬ: сделать его понятнее.

Это клиент, который будет работать на компьютере нашего клиента, и они будут устанавливать VPN и сервер так, как хотят.Поэтому я хотел знать, хранит ли Windows где-то параметр, который я могу прочитать через API, реестр или WMI, или что-то еще, что может сказать мне VPN: нет или да, и если да, то информация.

Ответы [ 5 ]

1 голос
/ 06 июля 2010

С VPN я подозреваю, что вы можете получить доступ к ресурсам, которые не существуют иначе.Таким образом, вы можете проверить PING-сервер в сети VPN.ICMP - это протокол для проверки связи.

Вот несколько примеров: http://www.alhem.net/project/ex10/index.html

1 голос
/ 06 июля 2010

Ваше IP-пространство должно быть другим, если вы используете VPN или нет - если VPN настроен правильно, сервер даже не будет доступен, если вы не используете VPN.Вы можете попытаться пропинговать сервер и выполнить синхронизацию, только если получите ответ?

0 голосов
/ 07 июля 2010

Может ли ваше приложение искать IP-адрес доменного имени, доступного только через VPN? Если поиск имени не удался, вы не в VPN. Если обычный Интернет не может запрашивать DNS-сервер в VPN, это может быть работоспособным решением (но может быть недостаточно обобщенным для ваших нужд?). Затем вы можете попробовать подключиться к этому IP-адресу, что будет успешным только в том случае, если вы подключены к VPN.

Вы могли бы даже предоставить общедоступный DNS-сервер, предоставляющий IP-адрес. Просто используйте специальное имя хоста, которое никогда не преобразуется в публичный IP. Если VPN не работает, вы не сможете достичь этого адреса.

0 голосов
/ 07 июля 2010

Я искал параметры реестра конкретного поставщика, чтобы определить, активен ли туннель. Это хорошо работает с клиентами Nortel и Cisco VPN.

0 голосов
/ 06 июля 2010

Я довольно уверен, что одним из преимуществ VPN является то, что пользовательские приложения в целом не должны знать о его существовании.Ваш лучший способ действий - это запросить, используя COM или какую-либо другую форму IPC, услуги известных VPN-провайдеров, или просто посмотреть, являются ли они живыми и / или активными, и вывести ситуацию на основании этих доказательств.

...