Bagaimana saya bisa tahu jika OS X terhubung ke jaringan VPN dari baris perintah?

12

Bagaimana saya bisa tahu jika OS X terhubung ke jaringan VPN dari baris perintah?

Dengan berjalan ifconfigtanpa argumen ketika saya terhubung, saya melihat bahwa ada utun0antarmuka yang tampaknya koneksi VPN. Ketika saya putuskan itu hilang.

Saya percaya saya bisa menggunakan sesuatu seperti ini untuk memeriksa string utun0dan menghitung kejadian:

ifconfig | grep -c utun0

Tetapi apakah ada cara yang lebih mudah atau lebih efektif untuk memeriksa ini? Jika utun0sebuah perangkat, atau bahkan perangkat pseudo, seharusnya saya tidak dapat memeriksa apakah ada sesuatu seperti:

if [ -a '/dev/utun0' ]

Sayangnya saya tidak melihat perubahan dalam direktori yang bila memasang dan melepaskan, saya hanya melihat /dev/tun0melalui /dev/tun15dan saya tidak bisa catmereka bahkan dengan sudo...

Apakah ada cara yang lebih sederhana untuk mengetahui apakah saya memiliki koneksi VPN?

cwd
sumber
VPN jenis apa? Built-in yang Anda konfigurasikan dalam System Preferences ?
Daniel Beck
@DanielBeck -Ya
cwd

Jawaban:

10

Anda juga dapat, pada Mountain Lion 1 , menggunakan perintah scutil.

Sebagai contoh:

$ scutil --nc list | grep Connected

Untuk bantuan lebih rinci, Anda dapat melihat halaman manual , atau menjalankan:

$ scutil --nc help

Catatan kaki:

  1. Saya tidak mengetahui perintah ini ada dalam versi OSX sebelum Mountain Lion, tapi saya bisa saja salah.
dikodekan
sumber
0

Karena Anda mendefinisikan antarmuka melalui System Preferences, cara mudah untuk melakukan hal ini adalah dengan menggunakan AppleScript. Berikut cuplikan yang akan melakukan apa yang ingin Anda lakukan:

# 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

Simpan ini sebagai skrip di suatu tempat (dan pastikan Anda menyimpannya sebagai file skrip!).

Kapan pun Anda ingin menjalankannya, gunakan perintah: osascript /path/to/script.scpt

Atau buat alias yang melakukan itu.

Alex Plumb
sumber