Comment savoir si OS X est connecté à un réseau VPN à partir de la ligne de commande?

12

Comment savoir si OS X est connecté à un réseau VPN à partir de la ligne de commande?

En exécutant ifconfigsans aucun argument lorsque je suis connecté, je constate qu'il existe une utun0interface qui semble être la connexion VPN. Quand je me déconnecte, ça s'en va.

Je pense que je pourrais utiliser quelque chose comme ça pour vérifier la chaîne utun0et compter les occurrences:

ifconfig | grep -c utun0

Mais existe-t-il un moyen plus simple ou plus efficace de vérifier cela? Si utun0c'est un appareil, ou même un pseudo appareil, ne devrais-je pas être en mesure de vérifier s'il existe avec quelque chose comme:

if [ -a '/dev/utun0' ]

Malheureusement, je ne vois aucun changement dans ce répertoire lors de la connexion et de la déconnexion, je vois juste à /dev/tun0travers /dev/tun15et je ne peux pas catmême avec sudo...

Existe-t-il un moyen plus simple de savoir si j'ai une connexion VPN?

cwd
la source
Quel genre de VPN? Le intégré que vous configurez dans les Préférences Système ?
Daniel Beck
@DanielBeck -oui
cwd

Réponses:

10

Vous pouvez également, à partir de Mountain Lion 1 , utiliser la commande scutil.

Par exemple:

$ scutil --nc list | grep Connected

Pour une aide plus détaillée, vous pouvez voir la page de manuel ou exécuter:

$ scutil --nc help

Notes de bas de page:

  1. Je ne suis pas au courant de cette commande existante dans les versions d'OSX antérieures à Mountain Lion, mais je peux me tromper.
encodé
la source
0

Étant donné que vous définissez l'interface via les Préférences Système, un moyen simple de procéder consiste à utiliser AppleScript. Voici un extrait qui fera ce que vous voulez faire:

# Get the major version number. Mavericks changes the way things are done.
set osversion to do shell script "sw_vers 2>/dev/null | awk '/ProductVersion/ { print $2    }' | cut -f 2 -d ."
if osversion is less than 9 then
    set vpntype to 10
else
    set vpntype to 11
end if
try
    tell application "System Events"
        tell current location of network preferences
            set vpnservice to (name of first service whose kind is vpntype) as string
            set myConnection to the service vpnservice
            if myConnection is not null then
                if current configuration of myConnection is not connected then
                    return "Not Connected"
                else
                    return "Connected"
                end if
            end if
        end tell
    end tell
on error error_message
    return error_message
    error number -128
end try

Enregistrez-le en tant que script quelque part (et assurez-vous de l'enregistrer en tant que fichier de script!).

Chaque fois que vous souhaitez l'exécuter, utilisez la commande: osascript /path/to/script.scpt

Ou créez un alias qui effectue cela.

Alex Plumb
la source