Detect behind VPN in android

前端 未结 5 900
半阙折子戏
半阙折子戏 2021-01-05 22:49

How to detect programatically if traffic is going through VPN without using intent to connect to VPNService. Is there some system call?

5条回答
  •  时光说笑
    2021-01-05 23:05

    The Android OS is aware of when a VPN connection is active (as it shows an icon in the status bar for the duration of a VPN connection) but there is no public API method (which would appear on the VpnService) to check for an active connection.

    Two solutions occur. If you are dealing with a specific situation where you know the network topology, run 'ping' to see if a particular IP address is available - use System.exec. the ping command is present on Android devices with stock ROMs, I've used it as part of a solution to to provide a more granular view of the state of a data connection (ip address not allocated, ip address allocated but can't access the internet, can access the internet)

    A better solution would be to run a traceroute instead and analyse the output. I've not checked if traceroute is present on Android devices with stock ROMs, I'll edit this answer later with more complete information.

提交回复
热议问题