Определить, подключен ли iphone / ipad к VPN через публичный wifi программно - PullRequest
6 голосов
/ 04 апреля 2011

У нас есть приложение, в котором определенные функции должны работать только тогда, когда пользователь подключен к маршрутизатору, связанному с его учетной записью (у нас есть некоторая информация об учетных записях пользователей и домашних маршрутизаторах).Тем не менее, пользователь может установить VPN-подключение к своему домашнему маршрутизатору через любую общедоступную сеть Wi-Fi / 3G.Мы хотим заблокировать определенную функциональность, если это так.

Есть идеи, как ее можно обнаружить с помощью любого из существующих iphone / ipad apis?

Спасибо, Hetal

Ответы [ 2 ]

6 голосов
/ 09 апреля 2011

В API достижимости есть флаг, называемый kSCNetworkReachabilityFlagsTransientConnection.Это правда, когда вы подключены через VPN, и ложь, если вы не подключены через VPN.Мы использовали это значение флага для проверки наших условий.

1 голос
/ 04 апреля 2011

Нет API для iOS (по крайней мере, общедоступного), которое предоставило бы вам информацию о том, используете ли вы домашний маршрутизатор или общедоступное соединение WiFi. Вы можете только определить, что вы находитесь на соединении WiFi против 3G. (например, см. образец Достижимость )

Возможно, вам удастся выполнить поиск по текущему IP-адресу устройства. Вам нужно было бы, чтобы каждый пользователь зарегистрировал IP-адрес своего маршрутизатора, а ваше приложение проверило его перед запуском и т. Д. Но, тем не менее, не было бы никакой гарантии, что домашний маршрутизатор пользователя защищен. Другими словами, он может быть таким же широко открытым, как и общедоступный WiFi.

...