[awk] Fonctions DNS

Bruno Bonfils asyd at asyd.net
Tue Aug 31 14:33:48 CEST 2010


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


More information about the Shell mailing list