On Tue 31 August, Vincent Lefevre wrote:
On 2010-08-31 11:11:05 +0200, Bruno Bonfils wrote:
Ci dessous des méthodes awk permettant de résoudre un nom en IP et vice versa :
On peut faire plus court et plus correct en Perl. :)
Ce n'est pas tellement la question, d'autre répondra que l'on fait plus cours en ruby/whatever (moi même je pourrais dire que je fais plus court en groovy) mais les trolls langages c'est bon pour la cour de récré epita/epitech.
Le problème principal de host est qu'il fait une requête DNS. Si c'est ce qu'on veut, pas de problème. Mais si le but est de convertir un nom en IP, il faut utiliser les fonctions POSIX. En effet, il y a d'autres méthodes que le DNS, et bien souvent, /etc/hosts doit être utilisé en priorité (cf /etc/nsswitch.conf).
Il est vrai j'aurais pu utilisé getent host mais dans ce cas précis, je voulais justement une résolution DNS pour éviter les problèmes éventuels de noms courts dans /etc/hosts. Au passage il y a une erreur dans ma fonction, elle ne ferme pas le FD ouvert par le pipe, voici la correction (mais elle n'est encore pas parfaite) --%<-- function ipToName(address) { cmd="host " address buffer="" while ((cmd | getline line) > 0) { if (line ~ /pointer/) { sub(".*pointer ", "", line) sub("\.$", "", line) buffer=line break } else { buffer=address break } } close(cmd) return buffer } --%<-- -- http://asyd.net/home/ - Home Page http://www.guses.org/ - French Speaking (Open)Solaris User Group http://netvibes.com/asyd - Portal