iDeviceが3G/UMTS/Edgeを使用しているときに確立されたVPNを検出する

iDeviceがWiFi経由でインターネットに接続されている場合は、 kSCNetworkFlagsTransientConnection を使用してVPNステータスを検出できます。それはうまく動作します。

しかし、3G/UMTSの場合、このフラグは常に真です。

VPNのオン/オフは両方とも到達可能性フラグステータス:WR t ---- l - です。

iDeviceが3G/UMTS/EDGE経由でインターネットに接続されているときにVPNステータスを検出する方法はありますか?

2
方法を見つけましたか?私は同じ問題で苦労しています。
追加された 著者 onnoweb,
満足できる解決策が見つかりませんでした。 mobile-netの場合、私は到達可能性APIを使用して、サーバーに到達できないときにユーザーに知らせるようにしてから、vpnがデバイスで有効になっていることを確認するよう求めました。
追加された 著者 Yedy,

1 答え

これがまだ価値がある場合。私はテストする方法を見つけました。少なくともIPSecとJuniperの場合、VPN接続によってデバイスのプロキシ設定が変更されるようです。

NSDictionary *dict = (__bridge NSDictionary *)(CFNetworkCopySystemProxySettings());

VPNがオンでない場合、dictは0個の項目を持ちます。 VPNがオンの場合、dictには特定のvpn接続に関連するコンテンツがあります。

3
追加された
明らかに、ARCを使用する場合は、 __ bridge_transfer または CFBridgingRelease を使用することをお勧めします。
追加された 著者 Rob,
BTW、これをテストしたところ、携帯電話の場合はエントリは表示されませんが、標準の家庭用Wi-Fiネットワーク(VPNではなく)の場合はエントリがあります。または、この質問の目的のために、Wi-FiネットワークをVPNとして検討していますか?
追加された 著者 Rob,
あなたは、 ppp0 utun0 キーを __ SCOPED __ の中で探すべきです。これらのキーの存在は、接続されたVPNを示します。
追加された 著者 Maciej Swic,
はい、「しない」がありません。私は私の答えを編集します。良いキャッチ。
追加された 著者 onnoweb,