Sul computer remoto, salva il seguente codice AppleScript in un nuovo documento Script Editor.App (Script Editor.App si trova qui ... / Applicazioni / Utilità / Script Editor.app) come applicazione "Resta aperto". Prima di salvare questo documento come applicazione, assicurati di inserire il tuo attuale indirizzo IP esterno e l'indirizzo email nelle prime due righe del codice.
Per riassumere ciò che fa il codice AppleScript è semplicemente ... Ogni 15 minuti controlla il tuo attuale indirizzo IP esterno con l'indirizzo IP che hai impostato nella prima riga del codice. Se questi due indirizzi IP non sono gli stessi, lo script andrà avanti e invierà una nuova e-mail (all'indirizzo e-mail impostato nella seconda riga del codice) con il nuovo indirizzo IP esterno aggiornato.
Quindi, proprio come se si aprisse qualsiasi altra applicazione nel Finder, facendo doppio clic sull'app appena creata verrà eseguita la nuova app.
proprietà ipAddress: "123.456.7.89" - Inserisci indirizzo IP esterno corrente (impostare solo una volta)
proprietà toRecipient: "whoever@gmail.com" - L'email per ottenere l'IP ha modificato i messaggi
inattivo
imposta l'IP per eseguire lo script di shell "curl ifconfig.co"
se l'IP non è uguale a ipAddress allora
dire all'applicazione "Posta"
imposta newEmail su (crea nuovo messaggio in uscita)
imposta il contenuto di newEmail sull'IP
imposta l'oggetto di newEmail su "L'indirizzo IP è cambiato"
dire a newEmail
crea un nuovo destinatario con proprietà {address: toRecipient}
Spedire
fine raccontare
fine raccontare
impostare ipAddress su IP
finisci se
ritorno (15 * minuti) - Attesa 15 min. per controllare nuovamente l'IP
fine inattivo
Non dimenticare di aggiungere questa nuova applicazione AppleScript, in Preferenze di Sistema, all'elenco delle app autorizzate a controllare il tuo computer.
UPDATE
Sebbene lo script precedente sembri funzionare, dopo diverse esecuzioni e piccole modifiche al codice a scopo di test, ho deciso di creare una soluzione alternativa. A causa delle nuove impostazioni di sicurezza in macOS Mojave e dell'incapacità di AppleScript di aggiornare e mantenere in modo affidabile i valori delle proprietà Global e Persistent tra le esecuzioni, ritengo che questa soluzione alternativa sia molto più affidabile.
Step 1: Sul computer remoto, in Script Editor.app, salva questo codice AppleScript come file .scpt e chiamalo "Get Current External IP.scpt"
Assicurati di modificare il valore di property toRecipient
al tuo indirizzo email
proprietà ipAddress: "1.1.1.1" - Non necessario per l'impostazione
proprietà toRecipient: "YourEmail@gmail.com" - L'e-mail per ottenere l'IP ha modificato i messaggi
imposta emailIsRunning sull'applicazione "Mail" in esecuzione - Controlla se la posta è in esecuzione
provare
imposta lastLoggedIP su readFile ()
imposta l'IP per eseguire lo script di shell "curl ifconfig.co"
se l'IP non è uguale a lastLoggedIP allora
sendNewEmail ()
writeToTheFile ()
finisci se
in caso di errore errMsg numero errNum
se errNum è -43 allora - L'errore se il file per readFile () non esiste ancora
imposta l'IP per eseguire lo script di shell "curl ifconfig.co"
se l'IP non è uguale a ipAddress allora
sendNewEmail ()
writeToTheFile () - Crea il file "/ private / tmp / IP Logger.txt"
finisci se
altro
attivare
mostra finestra di dialogo "Si è verificato un errore:" & return & errMsg & "" & errNum rinuncia dopo 10
finisci se
fine prova
ritardo 20 - Consente il completamento di qualsiasi messaggio di posta in arrivo o in uscita
se non emailIsRunning, esci dall'applicazione "Mail" - Esce da Mail se non era già in esecuzione
to sendNewEmail () - Invia nuova e-mail ogni volta che cambia l'IP
imposta l'IP per eseguire lo script di shell "curl ifconfig.co"
dire all'applicazione "Posta"
imposta newEmail su (crea nuovo messaggio in uscita)
imposta il contenuto di newEmail sull'IP
imposta l'oggetto di newEmail su "L'indirizzo IP è cambiato"
dire a newEmail
crea un nuovo destinatario con proprietà {address: toRecipient}
Spedire
fine raccontare
fine raccontare
impostare ipAddress su IP
end sendNewEmail
on readFile () - Legge IP Logger.txt per verificare la presenza di modifiche IP
imposta il File1 come alias "private: tmp: IP Logger.txt"
imposta lastLoggedIP sull'ultimo elemento di (leggi il File1 come testo utilizzando il delimitatore di avanzamento riga)
end readFile
su writeToTheFile () - Registra ogni modifica IP su file
imposta l'IP per eseguire lo script di shell "curl ifconfig.co"
imposta il file su "/ private / tmp / IP Logger.txt"
impostare il testo su IP
provare
impostare writeToFile da aprire per accedere al file con autorizzazione di scrittura
scrivi il linefeedText & in writeToFile come testo a partire da eof
chiudere accedere a theFile
in caso di errore errMsg numero errNum
chiudere accedere a theFile
impostare writeToFile da aprire per accedere al file con autorizzazione di scrittura
scrivi il linefeedText & in writeToFile come testo a partire da eof
chiudere accedere a theFile
fine prova
end writeToTheFile
Step 2: Sul computer remoto, in Script Editor.app, salva il seguente codice AppleScript come file dell'applicazione "resta aperto". L'ho chiamato "IP Changed Email Notify.app".
Se non hai salvato "Ottieni IP.scpt esterno corrente" nella cartella Documenti nel passaggio 1 dall'alto, devi impostare la sua posizione in proprietà currentExternalIP
nel seguente codice.
proprietà currentExternalIP: alias ((percorso alla cartella documenti come testo) & "Ottieni IP.scpt esterno corrente")
eseguire lo script currentExternalIP
inattivo
eseguire lo script currentExternalIP
ritorno (15 * minuti)
fine inattivo
La prima volta che esegui la nuova app AppleScript aperta (IP Changed Email Notify.app) dall'esterno di Script Editor.app, ti verrà presentata la seguente finestra di dialogo ...
Basta fare clic su "OK" e poiché tutto il lavoro viene effettivamente svolto da "Ottieni IP.scpt esterno corrente", non dovrebbero esserci più finestre di dialogo o avvisi futuri da gestire.
Step 3: (FACOLTATIVO) Sul computer remoto, aggiungi questa applicazione AppleScript appena creata (IP Changed Email Notify.app) agli "Elementi di accesso" nel pannello Preferenze di sistema di Utenti e gruppi.Ora ogni volta che il computer si riavvia, IP Changed Email Notify.app verrà eseguito automaticamente e ogni volta che l'indirizzo IP esterno di quel computer cambia, riceverai una notifica e-mail.