Primero de todos, usted necesita homebrew instalado en su sistema. Si no lo has hecho, visita http://brew.sh para obtener instrucciones, o hágamelo saber y voy a tratar de guiarlo.
Entonces usted necesita para instalar arp-scan
. Para hacerlo, abra una Terminal y escriba brew install arp-scan
.
El próximo paso. Guardar la secuencia de comandos siguiente, 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
Reemplace your-username
, your-password
y your-iphone-mac
.
-
your-username
debe ser un usuario administrador, que puede sudo en su ordenador.
-
your-password
contraseña para ese usuario.
-
your-iphone-mac
se pueden obtener en su iphone, vaya a Settings
-> General
-> About
y copia Wi-Fi Address
.
Dar permisos: chmod 775 check-iphone-available.scpt
.
La secuencia de comandos ejecutar como administrador el comando arp-scan
. Este comando envía paquetes ARP para hosts en la red local y muestra las respuestas que se reciban. El grep
comando buscar su iphone en la respuesta que reciben por arp-scan
. Si el iphone se encuentra, entonces devolver 1, de lo contrario, devuelve 0. En la 1, la secuencia de comandos de hacer clic en el elemento de menú Disponibles en los Mensajes, en 0, la misma en la Distancia (puede ser cambiado por Offline
, On the phone
, etc).
Así que, vamos a hacerlo de forma automática.
Ir a la carpeta /Users/your-username/Library/LaunchAgents
y guardar allí el siguiente archivo plist. La llamé com.username.checkiphone.plist
, pero de nuevo, siéntase libre de cambiar.
<?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 es bastante auto-explicativo. Vamos a lanzar el comando /usr/bin/osascript /Users/your-username/bin/check-iphone-available.scpt
cada 60 segundos, se lanzó a la carga, evitará errores en /tmp/com.username.checkiphone-available.err
y los registros en /tmp/com.username.checkiphone-available.out
.
De nuevo, sustituya your-username
de forma adecuada.
Último paso, decirle a la Mac launchd demonio de carga.
launchctl load com.your-username.checkiphone.plist
Para detener la secuencia de comandos, basta con sustituir la palabra load
con unload
en la oración anterior. Al reiniciar el equipo el script se carga de nuevo. Para evitarlo, moverlo a otra carpeta.