Changement automatique de fichier Hosts sous Windows 10

J’utilise des tunnels SSH pour accéder à des services chez moi. Je sur-défini ensuite le fichier hosts de Windows pour que les adresses de ces services pointent vers localhost.

Le problème, c’est que c’est embêtant d’aller commenter les lignes à la main dans le fichier hosts.

Du coup, j’ai automatisé tout ça pour que ça se fasse tout seul. Voici comment.

Le script Batch

Pour mettre à jour le fichier, j’utilise un script Batch. Ce n’est vraiment pas un langage que j’affectionne car je le connais peu, mais ça a l’avantage de n’avoir aucune dépendance.

L’idée du script donné ci-dessous c’est de détecter, à partir de mon IP, si je suis bien chez moi ou pas. Petite particularité, ma plage IP locale est 192.168.210.0/24, ce qui n’est pas courant, en général on est plutôt sur du 192.168.1.0/24. Donc c’est parfait pour identifier si je suis bien chez moi. Ensuite, je vais copier le fichier hosts qui va bien en fonction de l’emplacement.

@echo off
set folder=D:\opt\hosts

for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a

set start=%NetworkIP:~0,12%
set place=out
if /i "%start%"=="192.168.210." (
    set place=home
)

echo %DATE% %TIME%: %place% >> %folder%\logs

set file=%folder%\hosts-%place%.txt
copy %file% C:\Windows\System32\Drivers\etc\hosts

Petits détails intéressants :

  • Chez moi, le script est enregistré dans le dossier D:\opt\hosts, il suffit de changer la variable en haut du script.
  • A chaque fois que le script est exécuté, je viens enregistrer dans un fichier logs, le résultat. Ca permet de vérifier le résultat rapidement.

Execution automatique

Maintenant que j’ai un script qui permet de mettre à jour automatiquement mon fichier hosts, reste à l’exécuter automatiquement à chaque modification réseau. Pour cela, j’utilise le planificateur de tâches de Windows. Voici comment j’ai réglé la tâche :

  1. Ouvrir le “¨Planificateur de tâches”
  2. Dans “Bibliothèque du planificateur de tâches”, choisir “Créer une tâche …” (panneau à droite)
  3. Dans “Déclencheurs”, choisir “Nouveau” et régler comme dans la capture d’écran plus bas.
  4. Dans “Actions”, sélectionner le script.
  5. Ajuster les autres paramètres comme vous voulez et voilà.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.