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-passwordy 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-macse puede obtener en su iphone, vaya a Settings-> General-> Abouty 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 grepcomando 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/LaunchAgentsy 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.scptcada 60 segundos, lo lanzaremos en la carga, guardaremos errores /tmp/com.username.checkiphone-available.erre iniciaremos sesión /tmp/com.username.checkiphone-available.out.
Nuevamente, reemplace your-usernameapropiadamente.
Ú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 loadcon unloaden la oración anterior. Cuando reinicie su computadora, el script se cargará nuevamente. Para evitarlo, muévalo a otra carpeta.