Come posso sapere se OS X è connesso a una rete VPN dalla riga di comando?


12

Come posso sapere se OS X è connesso a una rete VPN dalla riga di comando?

Eseguendo ifconfigsenza alcun argomento quando sono connesso, vedo che esiste utun0un'interfaccia che sembra essere la connessione VPN. Quando mi disconnetto va via.

Credo di poter usare qualcosa del genere per verificare la stringa utun0e contare le occorrenze:

ifconfig | grep -c utun0

Ma esiste un modo più semplice o più efficace per verificarlo? Se utun0è un dispositivo o anche uno pseudo dispositivo, non dovrei essere in grado di verificare se esiste con qualcosa del tipo:

if [ -a '/dev/utun0' ]

Sfortunatamente non vedo alcun cambiamento in quella directory durante la connessione e la disconnessione, vedo solo /dev/tun0attraverso /dev/tun15e non riesco a farlo catanche con sudo...

Esiste un modo più semplice per sapere se ho una connessione VPN?


Che tipo di VPN? Il built-in configurato nelle Preferenze di Sistema ?
Daniel Beck

@DanielBeck -yes
cwd

Risposte:


10

Puoi anche, a partire da Mountain Lion 1 , utilizzare il comando scutil.

Per esempio:

$ scutil --nc list | grep Connected

Per un aiuto più dettagliato, puoi vedere la pagina man o eseguire:

$ scutil --nc help

Note:

  1. Non sono a conoscenza di questo comando esistente nelle versioni di OSX precedenti a Mountain Lion, ma potrei sbagliarmi.

0

Dal momento che stai definendo l'interfaccia tramite Preferenze di Sistema, un modo semplice per farlo sarebbe usare AppleScript. Ecco uno snippet che farà ciò che vuoi fare:

# 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

Salvalo come script da qualche parte (e assicurati di salvarlo come file di script!).

Ogni volta che vuoi eseguirlo, usa il comando: osascript /path/to/script.scpt

O crea un alias che lo compia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.