requête dns dans un script

requête dns dans un script - Perl - Programmation

Marsh Posté le 16-09-2003 à 14:08:25    

Bonjour
 
J'ai besoin d'effectuer des requetes DNS dans un script et j'ai testé avec type = A ou MX (exemple ci -dessous ) ou NS .
 
 
Mais est-il possible d'utiliser le type "ANY" ?
 
exemple de sub pour MX  
je suis novice en perl alors indulgence ....
 
#################################
sub mx_domain
{
 my ($nom) =@_;
  @mx = mx($res, $nom);
  if (@mx)  
  {
      print ("\nRecherche des MX pour le domaine ",$nom," \n" );
      foreach $rr (@mx) { print (" ",$rr->preference, " ", $rr->exchange,"  (",&domain_ip($rr->exchange)," )\n" ); }
  }
  else
  {
  if ($res->errorstring ne NOERROR)
   { print " requète MX erreur ", $res->errorstring;}
     }
}
 
Si quelqu'un peut m'aider ( une piste .... )  
 
merci

Reply

Marsh Posté le 16-09-2003 à 14:08:25   

Reply

Marsh Posté le 17-09-2003 à 14:29:04    

Salut
je ne connais pas trop les modules qui permettent de communiquer avec les DNS. lequel utilise tu?

Reply

Marsh Posté le 17-09-2003 à 19:09:03    

J'utilise le module Net:: DNS .
 
Certes , on peut utiliser la commande nslookup de Bind en l'insérant dans le scrip perl mais j'essaie de ne pas me servir de commandes externes à Perl .
 
 


Message édité par ktm le 17-09-2003 à 19:12:29

---------------
Christian ROCHE
Reply

Marsh Posté le 18-09-2003 à 09:00:16    

Je ne sais pas si cela t'aidera, mais tu a la doc du module ici:
http://search.cpan.org/author/CREI [...] Net/DNS.pm
 
et egalement les modules associés:
http://search.cpan.org/author/CREIN/Net-DNS-0.40/
 
Je n'ai jamais utilisé ce module (gethostbyname me suffit, et meme souvent seulement inet_aton...) donc je ne peux pas t'aider la dessus, désolé...
 
Sinon si tu est novice en Perl je me permet de te donner un conseil: utilise le pragma strict ("use strict;" ), car dans ta sub tu ecris:

Code :
  1. my ($nom) =@_;
  2. @mx = mx($res, $nom);


 
Tu declare donc la variable $nom comme privée à la sub, et tu recupere pour sa valeur l'argument passé à la fonction, donc c'est parfait. Mais tu ne declare mas @mx comme variable privée à la sub, et de plus la variable $res semble avoir été passée à la sub en globale (pas bô!). Plus bas tu ne declare pas nonplus $rr.
 
donc ca devrait donner un truc comme ca (selon ce que tu veux faire) :

Code :
  1. my ($res, $nom) =@_;
  2. my @mx = mx($res, $nom);
  3. (...)
  4. foreach my $rr (@mx)


 
Il faut essayer de rester stricte en Perl car comme le langage est aseez permissif on arrive vite à faire de la purée, donc use strict!

Reply

Marsh Posté le 18-09-2003 à 20:02:49    

merci pour le conseil .


---------------
Christian ROCHE
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed