OS XがVPNネットワークに接続されているかどうかをコマンドラインから確認するにはどうすればよいですか?
接続時にifconfig
を引数なしで実行すると、VPN接続のように見えるutun0
インターフェイスがあることがわかります。切断すると消えます。
文字列utun0
をチェックして出現回数をカウントするには、次のようなものを使用できると思います。
ifconfig | grep -c utun0
しかし、これを確認するより簡単またはより効果的な方法はありますか? utun0
がデバイスまたは疑似デバイスである場合、次のようなものでそれが存在するかどうかを確認できませんか?
if [ -a '/dev/utun0' ]
残念ながら、接続したり切断したりしても、そのディレクトリの変更は表示されません。/dev/tun0
から/dev/tun15
までが表示され、cat
を使用してもSudo
できません。
VPN接続があるかどうかを確認する簡単な方法はありますか?
また、マウンテンライオンの時点で1、scutilコマンドを使用します。
例えば:
$ scutil --nc list | grep Connected
詳細なヘルプが必要な場合は、 man page を参照するか、次を実行してください。
$ scutil --nc help
脚注:
システム環境設定でインターフェイスを定義しているので、これを行う簡単な方法は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
または、それを実行するエイリアスを作成します。