Sur l'ordinateur distant, enregistrez le code AppleScript suivant dans un nouveau document Script Editor.App (Script Editor.App est situé ici... /Applications/Utilities/Script Editor.app) en tant qu'application "Stay Open". Avant d'enregistrer ce document en tant qu'application, assurez-vous d'entrer votre adresse IP externe actuelle et l'adresse e-mail dans les deux premières lignes du code.
Pour résumer ce que fait le code AppleScript est simplement... Toutes les 15 minutes, il vérifie votre adresse IP externe actuelle par rapport à l'adresse IP que vous avez définie dans la première ligne du code. Si ces deux adresses IP ne sont pas les mêmes, le script enverra un nouvel e-mail (à l'adresse e-mail que vous avez définie dans la deuxième ligne du code) avec la nouvelle adresse IP externe mise à jour.
Ensuite, tout comme pour l'ouverture de n'importe quelle autre application dans Finder, double-cliquer sur votre nouvelle application créée lancera la nouvelle application.
propriété adresseIP : "123.456.7.89" -- Insérez l'adresse IP externe actuelle (Définissez une fois seulement)
propriété destinataire : "quelquun@gmail.com" -- E-mail pour recevoir des messages de changement d'IP
sur inactif
définir theIP à do shell script "curl ifconfig.co"
si theIP n'est pas égal à adresseIP alors
dire application "Mail"
définir nouvelEmail à (créer un nouveau message sortant)
définir le contenu du nouvelEmail à theIP
définir le sujet du nouvelEmail à "L'adresse IP a changé"
dire nouvelEmail
faire un nouveau destinataire à avec des propriétés {adresse:destinataire}
envoyer
fin dire
fin dire
définir adresseIP à theIP
fin si
retourner (15 * minutes) -- Attends 15 minutes pour vérifier à nouveau l'IP
fin inactif
N'oubliez pas d'ajouter cette nouvelle application AppleScript, dans les Préférences Système, à la liste des applications autorisées à contrôler votre ordinateur.
MISE À JOUR
Bien que le script ci-dessus semble fonctionner, après plusieurs executions et de légers changements dans le code à des fins de test, j'ai décidé de créer une solution alternative. En raison des nouveaux paramètres de sécurité dans macOS Mojave et de l'incapacité d'AppleScript à mettre à jour de manière fiable et à maintenir ses valeurs de propriété globales et persistantes entre les exécutions, je pense que cette solution alternative est beaucoup plus fiable.
Étape 1: Sur l'ordinateur distant, dans Script Editor, enregistrez ce code AppleScript sous forme de fichier .scpt et nommez-le "Obtenir l'adresse IP externe actuelle.scpt"
Assurez-vous de changer la valeur de propriété destinataire
par votre adresse e-mail
propriété adresseIP : "1.1.1.1" -- Pas nécessaire de définir
propriété destinataire : "VotreEmail@gmail.com" -- E-mail pour recevoir les messages de changement d'IP
définir emailEnCours à l'application "Mail" est en cours d'exécution -- Vérifie si Mail est en cours d'exécution
essayer
définir dernierIPLogué à lireFichier()
définir theIP à do shell script "curl ifconfig.co"
si theIP n'est pas égal à dernierIPLogué alors
envoyerNouvelEmail()
écrireDansLeFichier()
fin si
sur erreur errMsg number errNum
si errNum est -43 then -- L'erreur si le fichier pour readFile() n'existe pas encore
définir theIP à do shell script "curl ifconfig.co"
si theIP n'est pas égal à adresseIP alors
envoyerNouvelEmail()
écrireDansLeFichier() -- Crée le fichier "/private/tmp/IP Logger.txt"
fin si
sinon
activer
afficher dialog "Une erreur s'est produite:" & retour & errMsg & " " & errNum abandonner après 10 secondes
fin si
fin essayer
pause 20 -- Permet l'achèvement de tout message entrant ou sortant
si ce n'était pas emailEnCours alors quitter application "Mail" -- Quitte Mail s'il n'était pas déjà en cours d'exécution
À envoyerNouvelEmail() -- Envoie un nouvel e-mail à chaque changement d'IP
définir theIP à do shell script "curl ifconfig.co"
dire application "Mail"
définir nouvelEmail à (créer un nouveau message sortant)
définir le contenu du nouvelEmail à theIP
définir le sujet du nouvelEmail à "L'adresse IP a changé"
dire nouvelEmail
faire un nouveau destinataire à avec des propriétés {adresse:destinataire}
envoyer
fin dire
fin dire
définir adresseIP à theIP
fin envoyerNouvelEmail
sur lireFichier() -- Lit IP Logger.txt pour vérifier les changements d'IP
définir theFile1 à alias "private:tmp:IP Logger.txt"
définir dernierIPLogué à dernier élément de (lire theFile1 comme texte en utilisant le délimiteur retour à la ligne)
fin lireFichier
sur écrireDansLeFichier() -- Journalise chaque changement d'IP dans un fichier
définir theIP à do shell script "curl ifconfig.co"
définir theFile à "/private/tmp/IP Logger.txt"
définir leTexte à theIP
essayer
définir écrireDansFichier à ouvrir pour accès leFile avec la permission d'écriture
écrire leTexte & retour à ligne vers writeFile comme texte en commençant à la fin du fichier
fermer l'accès au fichier
sur erreur errMsg nombre errNum
fermer l'accès au fichier
définir écrireDansFichier à ouvrir pour accès leFile avec la permission d'écriture
écrire leTexte & retour à ligne vers writeFile comme texte en commençant à la fin du fichier
fermer l'accès au fichier
fin essayer
fin écrireDansLeFichier
Étape 2: Sur l'ordinateur distant, dans Script Editor, enregistrez ce code AppleScript suivant en tant que fichier d'application "Stay Open". Je l'ai nommé "Notifier par e-mail en cas de changement d'IP".
Si vous n'avez pas enregistré "Obtenir l'adresse IP externe actuelle.scpt" dans votre dossier Documents à l'étape 1 ci-dessus, vous devez alors définir son emplacement dans propriété currentExternalIP
dans le code suivant.
propriété currentExternalIP : alias ((chemin vers le dossier documents en tant que texte) & "Obtenir l'adresse IP externe actuelle.scpt")
exécuter le script currentExternalIP
sur inactif
exécuter le script currentExternalIP
retourner (15 * minutes)
fin inactif
Lorsque vous exécutez pour la première fois la nouvelle application AppleScript Stay Open (Notifier par e-mail en cas de changement d'IP) en dehors de Script Editor, vous verrez le dialogue suivant...
Il suffit de cliquer sur "OK" et comme tout le travail est en fait réalisé par "Obtenir l'adresse IP externe actuelle.scpt", il ne devrait plus y avoir de futurs dialogues ou alertes à traiter.
Étape 3: (OPTIONNEL) Sur l'ordinateur distant, ajoutez cette nouvelle application AppleScript créée (Notifier par e-mail en cas de changement d'IP) à vos "Éléments de connexion" dans le panneau Préférences Système Utilisateurs et Groupes. Maintenant, à chaque redémarrage de l'ordinateur, Notifier par e-mail en cas de changement d'IP s'exécutera automatiquement et chaque fois que l'adresse IP externe de cet ordinateur changera, vous recevrez une notification par e-mail.