通过unix命令验证网络身份

时间:2014-08-08 19:47:27

标签: macos unix networking identity launchd

首先是一些背景知识:我在Mac OSX中使用LaunchD功能定期启动应用程序我将调用" AppX & #34 ;.最好我喜欢几乎全天候运行这个应用程序。但是由于内存泄漏问题(这是我最好的猜测), AppX 会定期关闭。为了解决这个问题,我创建并加载了一个简单的plist文件,每6小时启动一次应用程序。这本身可以很好地工作,并最大限度地减少应用程但是, AppX 本身可能会耗尽我的电池电量,而我更喜欢它只在我家中连接到我的wifi网络时启动。

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

我的问题:我想使用if语句来检查我连接的网络是否是我的家庭wifi网络。如果是这样的话,系统将执行命令:

open -a AppX

那么......我将如何实现if语句来实现这一目标?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这是一个较旧的SO问题,提供了部分答案:

Get wireless SSID through shell script on Mac OS X

对于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