OS X'in komut satırından bir VPN ağına bağlı olup olmadığını nasıl anlayabilirim?


12

OS X'in komut satırından bir VPN ağına bağlı olup olmadığını nasıl anlayabilirim?

Çalıştırarak ifconfigBen bağlıyım herhangi bir argüman olmadan, bir olduğunu görüyoruz utun0VPN bağlantısının gibi görünen arayüzü. Bağlantıyı kestiğimde gider.

Dize kontrol etmek utun0ve oluşumları saymak için böyle bir şey kullanabilirsiniz inanıyorum :

ifconfig | grep -c utun0

Ancak bunu kontrol etmenin daha kolay veya daha etkili bir yolu var mı? Eğer utun0bir cihaz, hatta bir sözde cihazı olup, bunun gibi bir şeyle varlığının kontrol edilmesi mümkün olmamalıdır:

if [ -a '/dev/utun0' ]

Bağlama ve ayırırken yazık ki bu dizinde herhangi bir değişiklik görmüyorum, sadece görmek /dev/tun0aracılığıyla /dev/tun15ve yapamam catbunları bile sudo...

Bir VPN bağlantım olup olmadığını söylemenin daha basit bir yolu var mı?


Ne tür bir VPN? Sistem Tercihleri'nde yapılandırdığınız yerleşik ?
Daniel Beck

@DanielBeck -Evet
cwd

Yanıtlar:


10

Mountain Lion 1'den itibaren scutil komutunu da kullanabilirsiniz.

Örneğin:

$ scutil --nc list | grep Connected

Daha ayrıntılı yardım için kılavuz sayfasını görebilir veya çalıştırabilirsiniz:

$ scutil --nc help

Dipnotlar:

  1. Mountain Lion'dan önceki OSX sürümlerinde bulunan bu komutun farkında değilim, ama yanılmış olabilirim.

0

Arayüzü Sistem Tercihleri ​​aracılığıyla tanımladığınız için, bunu yapmanın kolay bir yolu AppleScript kullanmak olacaktır. İşte yapmak istediğiniz şeyi yapacak bir pasaj:

# 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

Bunu bir yere komut dosyası olarak kaydedin (ve komut dosyası olarak kaydettiğinizden emin olun!).

Çalıştırmak istediğinizde şu komutu kullanın: osascript /path/to/script.scpt

Veya bunu yapan bir takma ad yapın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.