OS XがコマンドラインからVPNネットワークに接続されているかどうかを確認するにはどうすればよいですか?


12

OS XがコマンドラインからVPNネットワークに接続されているかどうかを確認するにはどうすればよいですか?

ifconfig接続時に引数なしで実行utun0すると、VPN接続のように見えるインターフェイスがあることがわかります。切断すると消えます。

このようなものを使用して文字列をチェックしutun0、発生をカウントできると信じています:

ifconfig | grep -c utun0

しかし、これを確認するより簡単または効果的な方法はありますか?場合はutun0、デバイス、あるいは疑似デバイスですが、私はそれはのようなもので存在しているかどうかを確認することはできないはず。

if [ -a '/dev/utun0' ]

接続と切断時残念ながら、私はそのディレクトリ内のすべての変更が表示されていない、私はちょうど見/dev/tun0/dev/tun15、私がすることはできませんcat彼らはさえしてsudo...

VPN接続があるかどうかを確認する簡単な方法はありますか?


どのようなVPNですか?システム環境設定で設定するビルトイン?
ダニエルベック

@DanielBeck -yes
CWD

回答:


10

Mountain Lion 1以降、scutilコマンドを使用することもできます。

例えば:

$ scutil --nc list | grep Connected

より詳細なヘルプについては、manページを参照するか、次を実行できます。

$ scutil --nc help

脚注:

  1. Mountain Lionより前のOSXのバージョンにこのコマンドが存在することは知りませんが、間違っている可能性があります。

0

システム環境設定でインターフェースを定義しているので、これを行う簡単な方法は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 $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

これをスクリプトとしてどこかに保存します(そして、必ずスクリプトファイルとして保存してください!)。

いつでも実行したい場合は、次のコマンドを使用します: osascript /path/to/script.scpt

または、それを実行するエイリアスを作成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.