Как узнать, подключена ли OS X к сети VPN из командной строки?

Как узнать, подключена ли OS X к сети VPN из командной строки?

под управлением ifconfig без каких-либо аргументов, когда я связан, я вижу, что есть utun0 интерфейс, который, как представляется, VPN-подключение. Когда я отключаю его, он уходит.

Я думаю, я мог бы использовать что-то вроде этого, чтобы проверить строку utun0 и подсчета вхождений:

ifconfig | grep -c utun0

но есть ли более простой или более эффективный способ проверить это? Если utun0 Это устройство, или даже псевдо-устройство, я не должен быть в состоянии проверить, если он существует с чем-то вроде:

if [ -a '/dev/utun0' ]

к сожалению, я не вижу никаких изменений в этом каталоге при подключении и отключении, я просто вижу /dev/tun0 через /dev/tun15 а я не могу cat их даже с sudo...

есть ли более простой способ узнать, есть ли у меня VPN-соединение?

15
задан cwd
08.04.2023 17:45 Количество просмотров материала 3542
Распечатать страницу

2 ответа

вы также можете, как Mountain Lion1, используйте команду scutil.

например:

$ scutil --nc list | grep Connected

для более подробной справки можно посмотреть на странице, или run:

$ scutil --nc help

Примечания:

  1. я не знаю об этой команде, существующей в версиях OSX до Mountain Lion, но я могу ошибаться.
10
отвечен encoded 2023-04-10 01:33

Так как вы определяете интерфейс через системные настройки, простой способ сделать это-использовать AppleScript. Вот фрагмент, который будет делать то, что вы хотите сделать:

# 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     }' | 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

Сохранить как скрипт где-то (и убедитесь, что вы сохраните его как файл сценария!).

каждый раз, когда вы хотите запустить его, используйте команду: osascript /path/to/script.scpt

или сделайте псевдоним, который это выполняет.

0
отвечен Alex Plumb 2023-04-10 03:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх