Blog

Hahaha.. en tapant "Trou du cul" sur google, on tombe sur la page FaceBook de quelqu'un de très connu.. ^^ (5 hours ago)

Automator: Obtenir son adresse ip avec les règles de mail

Lorsque je suis au bureau, il m’arrive souvent de vouloir me connecter à l’iMac de mon domicile, ne serait-ce que pour récupérer un document ou de lancer des téléchargements à distance. Cependant, n’ayant pas d’adresse IP fixe à domicile (merci Belgacom), et ne désirant pas utiliser un service comme DynDNS, j’ai eu pour idée d’utiliser les outils que MacOS X mettait à ma disposition.

Bien entendu, il existe des softs gratuits et payants pour ce que je désirais faire, mais je voulais réaliser la chose par moi-même, sans doute pour me prouver que j’étais capable de le faire.

Pour résumer, je voulais que mon Mac à domicile m’envoyait par mail son adresse IP publique (celle fournie par mon fournisseur d’accès internet) afin que je puisse m’y connecter pour le contrôler à distance, notamment par VNC.

Pour cela, j’avais besoin de 3 choses :
1 – Créer une application simple avec Automator
2 – Créer un AppleScript qui lance cette application sur demande
3 – Utiliser les règles Mail avec des conditions particulières

Comment pourrais-je obtenir l’adresse IP publique de mon Mac sans trifouiller dans le coeur de mon Mac, et sans exécuter de script shell ?
La réponse est assez simple, il suffit de lancer Safari et d’aller sur un de ces nombreux services gratuits qui permettent d’afficher son adresse ip publique.

Mon choix s’est porté sur Whatsmyip, car il a l’avantage de ne donner l’adresse ip publique en brute et sans publicité ou autres textes, ce qui a toute son importance pour ce que je désirais faire.

Voici une capture de ce que me donne Whatsmyip quand je le sollicite (j’ai masqué une partie de mon ip pour une raison de sécurité).

Vous voyez ? Seule l’ip publique apparaît avec ce service gratuit. Maintenant, j’y vois donc un peu plus clair pour la création de ma petite application automator.

Application AUTOMATOR

1 : Obtenir les adresses URL indiquées
Cette action permet de lancer Safari et d’atteindre le site Web désiré, simplement en cliquant sur AJOUTER et en saisissant l’adresse de ce dernier (whatsmyip en ce qui nous concerne)

2 : Obtenir le texte d’une page Web
Cette action permet d’obtenir le contenu de la page web en question.

3 : Copier vers le Presse-papier
Cette action permet de copier le contenu de la page web vers le presse-papier

3 : Exécuter un script AppleScript
Cette action permet de saisir le code de notre script AppleScript

Explication de notre script AppleScript dans Automator


on run {input, parameters}
set ip_address to the clipboard

L’instruction SET permet de donner la valeur du presse-papier (clipboard) à notre variable « ip_address »

tell application « Mail »
set theNewMessage to make new outgoing message with properties {subject: »IP HOME », content:ip_address, visible:false}

L’instruction TELL permet ici d’appeler l’application MAIL, puis de lui dire qu’il faut créer un nouveau message sortant (new outgoing message) avec comme sujet du mail (subject) « IP HOME » (vous pouvez mettre ce que vous voulez puisque ce n’est qu’un simple texte dans le sujet du mail que vous recevrez) et comme corps de message l’adresse ip (variable ip_address) tout en faisant cette opération de manière invisible (visible:false)

tell theNewMessage
make new to recipient at end of to recipients with properties {address: »votre@adressemail.com »}
send
end tell
end tell
return input
end run

Nous disons ici à ce nouveau message, qu’il doit être envoyé à l’adresse mail « votre@adressemail.com ».
Bien entendu, ceci est un exemple, vous devez remplacer « votre@adressemail.com » par le destinataire de votre choix (votre adresse google mail par exemple).

Ensuite nous lui disons d’envoyer le mail avec l’instruction SEND, puis nous terminons les appels par les instructions END TELL, et enfin nous refermons cet AppleScript par un END RUN.

Une fois cette application terminée, enregistrez-la sous le nom de votre choix (GETIP.app en ce qui me concerne)

Voilà, nous avons notre application, voyons si elle fonctionne en double-cliquant dessus. Voici le mail que j’ai obtenu.

PARFAIT ! Maintenant il me faut trouver un moyen pour que cette application s’exécute automatiquement sur demande. Pour cela, j’ai besoin de créer un script AppleScript.

Script AppleScript qui va lancer l’application sur demande

Pour créer un AppleScript, il faut aller dans APPLICATIONS –> UTILITAIRES –> Editeur AppleScript.app

Ce Script est vraiment très simple puisqu’il appelle l’application que l’on vient de créer avec automator (GETIP.app).

Maintenant, comment allons-nous exécuter tout cela automatiquement ?
Il suffit de créer une nouvelle règle dans l’application MAIL

Règle dans l’application MAIL

Tout d’abord, allez dans les préférences de MAIL comme ceci:

Ensuite, cliquez sur le bouton « Règles » et ajoutez une règle comme ceci:

Ajoutez une description, puis sélectionnez les règles désirées.
Pour ma part, j’ai décidé que toutes les conditions suivantes doivent être remplies.

1 – L’adresse mail de l’expéditeur du message doit contenir … (indiquez ici l’adresse mail que vous allez utiliser pour envoyer un mail à votre Mac de votre domicile).
2 – L’objet du message doit être égal à … (IPHOME dans mon exemple, mais vous pouvez mettre ce que vous voulez)
3 – Enfin, vous demandez à MAIL d’exécuter le petit Script que nous venons de faire (et qui exécute l’application GETIP).

Attention, MAIL ne peut pas exécuter une application, c’est pour cela que nous avons créer un petit script qui va se charger de cela.

DERNIERE PRECAUTION


Il vous suffit de laisser allumer le Mac de votre domicile, et d’ouvrir l’application Mail avant de partir au bureau.

Une fois à votre travail, vous enverrez un mail avec comme adresse d’expédition celle que vous avez mentionnée dans les règles, en n’oubliant pas d’ajouter le sujet que vous avez également indiqué dans les règles.

Attendez quelques secondes, et vous recevrez un mail de votre Mac à domicile contenant son adresse IP publique dans le corps du message. ;-)

3 Commentaires



  1. K’allin media
    05 juil, 2010

    Hello, je trouve votre tuto super bien réaliser, ainsi que l’idée est super, c’est vrai que sa va bien me servire :) merci beaucoup, et a bientôt j’espere pour un nouveau tuto sur automator :D


  2. Sullivan
    09 juil, 2010

    Tuto incroyable et vraiment bien fait. Ca fait maintenant 2 semaines que je me suis lancé dans automator et j’ai meme acheté des livres pour mieux apprendre.
    Je ne savais qu’on pouvait faire ce genre de chose en utilisant apple script en plus. EXCELLENT.

    Pourrais-tu nous faire d’autres tutos sur Automator ? J’ai visité plein d’autres sites mais ils sont tous en Anglais, de ce fait quand ils donnent des noms de modules je suis un peu perdu.

    merci et encore félicitation ! :-D


  3. ludo
    11 juil, 2010

    Merci beaucoup pour vos encouragements ! ;-)
    Pour répondre à vos questions, oui, il y aura de nouveaux tutos Autormator prochainement, notamment en ce qui concerne le traitement des fichiers / photos.

Ecrire un commentaire

Catégories