MacOS X - Associer un nom à une adresse ip
Comment associer un nom à une adresse IP sous MacOSX

Problèmatique
[EDIT] : ceci n'est valable que jusqu'à MacOSX 10.4, PAS pour MacOSX 10.5 (Leopard)
MacOSX étant un système BSD, la première chose à laquelle on pense, c'est: "Facile, je vais modifier mon fichier /etc/hosts!"
C'est un bon réflexe, mais malheureusement, par défaut sous os X, ce fichier n'est jamais pris en compte.
La résolution de nom s'effectue via le gestionnaire NetINFO. Il existe plusieurs méthodes pour faire en sorte que le fichier /etc/hosts soit pris en compte après ou avant le gestionnaire NetINFO, mais vu que NetINFO fonctionne bien, autant l'utiliser, d'autant que cela simplifie la résolution de problèmes quand toutes les infos sont au même endroit!
Méthode
Voici la méthode en mode commande qui n'est pas si compliquée et qui a le mérite de pouvoir être effectuée sans forcément avoir un accès physique à la machine (via SSH).
Tout se passe à partir d'un terminal bash (/Applications/Utilitaires/Terminal)
Il faut d'abord récupérer la configuration actuelle:
$ mkdir -p ~/hosts $ cd ~/hosts $ nidump hosts / > hosts.conf.oriCopier le fichier pour conserver la configuration originale (.ori)
$ cp hosts.conf.ori hosts.conf
Là, faire les modifications souhaitées dans le fichier hosts.conf .
Il est vivement conseillé d'ajouter une ligne et non de modifier les lignes existantes sauf à savoir ce que vous faites!
Une fois la modification faite, il faut recharger le fichier dans NetINFO (en tant qu'utilisateur root, donc via sudo)
$ sudo niload hosts . < hosts.conf
Si tout se passe sans erreur (sinon, il faut soit corriger l'erreur dans le fichier hosts.conf, soit refaire la manip avec le fichier .ori), relancer le service de recherche de nom:
$ sudo killall -HUP lookupd
Vous n'avez plus qu'à tester!
Un petit exemple
Associer www.ccm.net à www.commentcamarche.net (194.169.240.130)
$ ping www.ccm.net ping: cannot resolve www.ccm.net: Unknown host $ mkdir -p ~/hosts $ cd ~/hosts $ nidump hosts / > hosts.conf.ori $ cp hosts.conf.ori hosts.conf $ cat hosts.conf ::1 localhost 255.255.255.255 broadcasthost 127.0.0.1 java.localhost 127.0.0.1 php.localhost 127.0.0.1 mysql.localhost $ echo "194.169.240.130 www.ccm.net" >> hosts.conf $ cat hosts.conf ::1 localhost 255.255.255.255 broadcasthost 127.0.0.1 java.localhost 127.0.0.1 php.localhost 127.0.0.1 mysql.localhost 194.169.240.130 www.ccm.net $ sudo niload hosts . < hosts.conf $ sudo killall -HUP lookupd $ ping -c4 www.ccm.net PING www.ccm.net (194.169.240.130): 56 data bytes 64 bytes from 194.169.240.130: icmp_seq=0 ttl=56 time=29.936 ms 64 bytes from 194.169.240.130: icmp_seq=1 ttl=56 time=30.622 ms 64 bytes from 194.169.240.130: icmp_seq=2 ttl=56 time=30.053 ms 64 bytes from 194.169.240.130: icmp_seq=3 ttl=56 time=30.566 ms --- www.ccm.net ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 29.936/30.294/30.622/0.303 ms
Et voilà, pour supprimer cette définition, il ne suffit pas de rechercher via niload le fichier hosts.conf.ori. En effet, niload fonctionne en ajout.
Voici comment utiliser la commande niutil pour supprimer l'entrée www.ccm.net
$ sudo niutil -destroy . /machines/www.ccm.net
N'oubliez pas de recharger lookupd après chaque modification! (sudo killall -HUP lookupd)
Ce document intitulé « MacOS X - Associer un nom à une adresse ip » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.