En primer lugar, necesita homebrew instalado en su sistema. Si no lo ha hecho, visite http://brew.sh para obtener instrucciones, o hágamelo saber e intentaré guiarlo.
Entonces necesitas instalar arp-scan
. Para hacerlo, abra una Terminal y escriba brew install arp-scan
.
Próximo paso. Guarde el siguiente script, llamé check-iphone-available.scpt
, pero puede cambiar el nombre si lo desea.
set IPHONE to do shell script "if /usr/local/bin/arp-scan -l | grep your-iphone-mac; then echo 1; else echo 0; fi" user name "your-username" password "your-password" with administrator privileges
tell application "System Events"
tell process "Messages"
tell menu bar 1
tell menu bar item "Messages"
tell menu "Messages"
tell menu item "My Status"
tell menu "My Status"
if IPHONE is not equal to "0" then
click menu item "Available"
else
click menu item "Away"
end if
end tell
end tell
end tell
end tell
end tell
end tell
end tell
Reemplazar your-username
, your-password
y your-iphone-mac
.
your-username
debe ser un usuario administrador que pueda sudo en su computadora.
your-password
contraseña para ese usuario.
your-iphone-mac
se puede obtener en su iphone, vaya a Settings
-> General
-> About
y copie Wi-Fi Address
.
Dar permisos: chmod 775 check-iphone-available.scpt
.
El script ejecuta como administrador el comando arp-scan
. Este comando envía paquetes ARP a los hosts en la red local y muestra las respuestas que se reciben. El grep
comando busca tu iphone en la respuesta recibida por arp-scan
. Si se encuentra el iPhone, a continuación, volver 1, de lo contrario, devuelve 0. En 1, la secuencia de comandos Haz clic en el elemento de menú disponible en mensajes, en 0, en la misma distancia (se puede cambiar por Offline
, On the phone
, etc).
Entonces, hagámoslo automáticamente.
Vaya a la carpeta /Users/your-username/Library/LaunchAgents
y guarde allí el siguiente archivo plist. Lo nombré com.username.checkiphone.plist
, pero nuevamente, siéntase libre de cambiarlo.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.your-username.checkiphone</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>/Users/your-username/bin/check-iphone-available.scpt</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/com.your-username.checkiphone-available.err</string>
<key>StandardOutPath</key>
<string>/tmp/com.your-username.checkiphone-available.out</string>
</dict>
</plist>
El archivo se explica por sí mismo. Lanzaremos el comando /usr/bin/osascript /Users/your-username/bin/check-iphone-available.scpt
cada 60 segundos, lo lanzaremos en la carga, guardaremos errores /tmp/com.username.checkiphone-available.err
e iniciaremos sesión /tmp/com.username.checkiphone-available.out
.
Nuevamente, reemplace your-username
apropiadamente.
Último paso, dile al demonio launchd de Mac que lo cargue.
launchctl load com.your-username.checkiphone.plist
Para detener el guión, simplemente reemplace la palabra load
con unload
en la oración anterior. Cuando reinicie su computadora, el script se cargará nuevamente. Para evitarlo, muévalo a otra carpeta.