通过unix命令验证网络身份



首先是一些背景:我使用Mac OSX的LaunchD功能定期启动一个应用程序,我将其命名为"AppX"。理想情况下,我喜欢几乎全天候运行这个应用程序。但是由于内存泄漏的问题(这是我最好的猜测),AppX会定期关闭。为了解决这个问题,我创建并加载了一个简单的plist文件,以便每6小时启动一次应用程序。这本身可以完美地工作,并最大限度地减少应用程序停机时间。然而,AppX本身可能会消耗我的电池,我希望它只在我在家连接wifi网络时启动。

请注意,虽然我对c++和Java有一些经验,但我对Unix知之甚少。

我的问题:我想使用if语句来检查我连接的网络是否是我的家庭wifi网络。在这种情况下,系统将执行以下命令:

open -a AppX

所以…我该如何实现if语句来实现这一点呢?

有一个更老的SO问题给出了部分答案:

在Mac OS X上通过shell脚本获取无线SSID

对于if语句,下面的应该起作用:
homenet = "MyHomeNetwork"
netname = /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'
if [ "$netname" -eq "$homenet" ]
then
    # Do fancy service startup here
else
    # This is not my home network
fi

最新更新