MacOS X - Associer un nom à une adresse ip

Décembre 2016


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.ori
Copier 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)

A voir également :

Ce document intitulé «  MacOS X - Associer un nom à une adresse ip  » issu de CommentCaMarche (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.