Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 通过unix命令验证网络标识_Macos_Unix_Networking_Identity_Launchd - Fatal编程技术网

Macos 通过unix命令验证网络标识

Macos 通过unix命令验证网络标识,macos,unix,networking,identity,launchd,Macos,Unix,Networking,Identity,Launchd,首先是一些背景知识:我正在使用MacOSX中的LaunchD功能定期启动一个我将称之为AppX的应用程序。最理想的情况是,我喜欢几乎全天候运行这个应用程序。但由于内存泄漏的问题,这是我最好的猜测,AppX会定期关闭。为了解决这个问题,我创建并加载了一个简单的plist文件,以便每6小时启动一次应用程序。这本身工作得很好,可以最大限度地减少应用程序停机时间。然而,AppX本身可能会耗尽我的电池,我更希望它只在我在家、连接到我的wifi网络时启动 请注意,虽然我有一些C++和java的经验,但我对U

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

请注意,虽然我有一些C++和java的经验,但我对UNIX .< /P>的了解很少。 我的问题:我想使用if语句来检查我连接的网络是否是我的家庭wifi网络。在这种情况下,系统将执行以下命令:

开放式应用程序


所以。。。如何实现if语句来实现这一点?感谢您的帮助。

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

对于if语句,以下内容应该有效:


我想您可以从netstat命令开始。netstat-an显示所有连接的网络,谢谢。经过几小时的调整后,效果很好,但这是一次很好的学习经历。我使用以下代码使其工作:homenet=homenet;netname=`/System/Library/privateframframeworks/Apple80211.framework/Versions/Current/Resources/airport-I|awk'/SSID/{print substr$0,index$0,$2}`;如果[$netname=$homenet];然后打开一个AppX;如果用换行符替换分号,fi更容易阅读,但是为了启动,代码必须全部是一行。而且,双刻度实际上是单刻度。格式化。。。
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