如何在Mac OS X下获取当前连接的VPN名称

3

我知道可以通过执行以下操作来获取Wifi SSID:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | sed -e "s/^  *SSID: //p" -e d

但是有没有办法获取当前正在使用的VPN名称?

1个回答

5

假设您指的是在“网络偏好设置”中注册的VPN服务,则可以使用AppleScript,特别是System EventsNetwork Preferences Suite

tell application "System Events"
    tell current location of network preferences
        get name of every service whose (kind is greater than 11 and kind is less than 16) and connected of current configuration is true
    end tell
end tell

如果您需要从shell访问此功能,osascript -e是您的好帮手(每行AppleScript使用一个-e选项,注意引号和转义 - 请参阅man osascript)。


1
谢谢,这个很好用。你能解释一下kind选项吗?为什么是>11和<16?我怎样才能自己发现所有这些选项名称(当前配置,每个服务等)? - nachocab
2
@nachocab:kind 值标识着网络连接的类型,是一个整数值,其中值为 12 到 15 表示 OS X 支持的不同 VPN 类型。关于如何找到这些信息:研究应用程序的 AppleScript 字典(通过 AppleScript 编辑器中的浏览器),尝试使用它们提供的功能(这就是我得到你所问的未记录值的方式),在遇到困难时搜索互联网(从 Stack Exchange 网站开始,最后以 Google 结束,它往往会推出流行但过时的解决方案)。 - kopischke
@nachocab:此外,“every...whose”子句是标准的AppleScript——所谓的*引用形式*。 AppleScript编辑器的帮助菜单将链接到AppleScript语言指南,值得一看:)。 - kopischke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接