检查wifi是否已连接的脚本

时间:2019-05-30 04:45:19

标签: macos shell terminal scripting

在Max OS Mojave中,是否可以创建Shell脚本或类似的工具来检查活动的wifi连接,如果没有,则禁用wifi然后重新启用?

一些背景。基本上,我需要确保可以在家中的任何地方连接到我的计算机。通常这没问题,但是由于当前的风暴,我们一直断电,当电源恢复供电时,我的Mac并不总是重新连接到我的wifi网络(可能与路由器有关,它已经很旧了)。这不是一个普遍的问题,但是如果在最不方便的时候没有发生,我会感到惊讶。为了解决这个问题,我只需要禁用wifi,然后重新启用即可。这可以解决问题,并且wifi自动重新连接。但是,如果我不在家,我将无法做到这一点。

我考虑过一个脚本,该脚本每20分钟运行一次,从而禁用wifi,然后使用launchd重新启用它,从技术上解决了我的问题,但是我不想在使用Mac时一直禁用该脚本因为如果不禁用它,我将每20分钟释放wifi。

任何信息将不胜感激。

1 个答案:

答案 0 :(得分:0)

networksetup是一个了不起的命令,以至于我甚至都没有刮过表面。这是可行的:

if ! networksetup -getinfo Wi-Fi | grep Router
then
  networksetup -setairportnetwork en0 $routername $routerpassword
fi

这将请求有关Wi-Fi网络服务的数据,这是5到10行的各种信息,包括它是否连接到路由器以及连接到路由器的信息。如果该行丢失,则说明您未连接。

在这种情况下,您可以显式请求连接到特定的路由器(具有特定的用户名和密码)。或者,您也可以做以前做过的同样的事情,您说的效果也很好(并且您无需写下路由器的凭据)。

(也许有一种更聪明的方法。正如我所说,该命令可以完成很多事情。)

相关问题