0

よし、契約だ。ユーザーが VPN 接続を介して特定の LAN に接続されているか、直接接続されているかを判断する必要があるプログラムに取り組んでいます。LAN に接続されている場合は、何かを行う必要があります。「オフライン」 (LAN に接続されていないが、インターネットに接続できることを意味する) の場合は、別のことを行う必要があります。C ++でこれを行う方法について何か考えはありますか? ネットワーク接続が VPN 接続であるかどうかを確認するための API 呼び出しはありますか? 「IsVPNConnection(...)」のようなものを探しています。

編集

私が使用している OS は Windows 7 です。VPN の種類に依存しないソリューションを探しています。

4

4 に答える 4

1

VPN は透過的になろうとするため、これは難しいでしょう。

ほとんどのマシンには、他のマシンへのルートが 1 つしかありません。VPN では、2 つのルートが存在する場合があります。そのため、ルーティング テーブルを確認できます。一部の VPN クライアントはローカル ネットワークを無効にするため、1 つのルートに戻ることになります。

ローカル サブネット上の IP アドレスをプログラムに伝えることができれば、それは簡単です。

于 2013-04-23T13:37:12.410 に答える
0

やりたいことが主に速度に関係している場合は、ping の時間を計ることができます。通常、LAN は非常に少数の MS で応答しますが、VPN はおそらく少なくとも数十ミリ秒で応答します。

于 2016-08-12T08:42:15.507 に答える