Bonjour à tous,
Sur fedora j'ai créer un serveur dns avec reverse il m'a été demandé avec un script perl de pouvoir générer un fichier csv (ou es noté hote + ip de type toto;10.3.2.141)
Mon script ne me permet pas de passer à la ligne suivante du fichier et la je suis perdu. Il arrive bien à calculé le nombre de ligne mais il m'affiche x fois la dernière ligne de mon fichier csv.
Pouvez vous m'indiquer une solution afin qu'il affiche toutes les lignes dans mon fichier dns
Merci d'avance
P.S: Si ca peut être utile je vous affiche mon script en perl
#!/usr/bin/perl
($toto, $ent) = @ARGV;
open DB, ">/var/named/toto.fr";
open REV, ">/var/named/10.in-addr.arpa.rev";
$j = 0;
open ADRIP, "tableip.csv";
while(<ADRIP>)
{
if($j == 0)
{
($hote,$IP) = split /;/, <ADRIP>;
}
else
{
$nom[$j] = ($hote,$IP);
}
$j++;
}
#($hote,$IP) = split /;/, <ADRIP>;
close ADRIP;
print DB
"\$\TTL\t86400\n",
"@\tIN\tSOA\t ent.toto.fr. root.toto.fr. (\n",
"\t\t\t\t1997022700\t; Serial\n",
"\t\t\t\t28800\t; Refresh\n",
"\t\t\t\t14400\t; Retry\n",
"\t\t\t\t3600000\t; Expire\n",
"\t\t\t\t86400 )\t; Minimum\n",
"\n",
"@\tIN\tNS\tent.toto.fr\n",
"ent\tIN\tA\t10.2.2.145\n",
"test\tIN\tCNAME\tent\n";
print REV
"\$\TTL\t86400\n",
"@\tIN\tSOA\tent.toto.fr. root.toto.fr. (\n",
"\t\t\t\t1997022700\t; Serial\n",
"\t\t\t\t28800\t; Refresh\n",
"\t\t\t\t14400\t; Retry\n",
"\t\t\t\t3600000\t; Expire\n",
"\t\t\t\t86400 )\t; Minimum\n",
";\n",
"@\tIN\tNS\tent.toto.fr.\n",
"1\tIN\tPTR\tent.toto.fr.\n";
foreach $tablip (1 .. $j) {
print DB "$hote\tIN\tA\t$IP\n";
print REV "$IP\tIN\tPTR\t$hote\n";
}
close DEB; close REV;



J'ai lu ton poste m'ai j'ai séché !
Si tu as la réponse je suis preneur !
bob
#!/usr/bin/perl open DB, ">/var/named/toto.fr"; open REV, ">/var/named/10.in-addr.arpa.rev"; $j = 0; $i = 0; open ADRIP, "tableip.csv"; while($ligne = <ADRIP>) { ($nom[$j],$adr[$j]) = split /;/,$ligne; #print "test $j $nom[$j] $adr[$j] \n"; $j++; #print "fin de la boucle $j \n"; } close ADRIP; print DB "\$\TTL\t86400\ @\tIN\tSOA\tent.toto.fr. root.toto.fr. ( 1997022700\t; Serial 28800\t; Refresh 14400\t; Retry 3600000\t; Expire 86400 )\t; Minimum\n @\tIN\tNS\tent.toto.fr ent\tIN\tA\t10.2.2.145 test\tIN\tCNAME\tent\n"; print REV "\$\TTL\t86400\ @\tIN\tSOA\tent.totofr. root.toto.fr. ( 1997022700\t; Serial 28800\t; Refresh 14400\t; Retry 3600000\t; Expire t86400 )\t; Minimum\n @\tIN\tNS\tent.toto.fr. 1\tIN\tPTR\tent.toto.fr.\n"; while($i<$j) { print DB "$nom[$i]\tIN\tA\t$adr[$i]\n"; print REV "$adr[$i]\tIN\tPTR\t$nom[$i]\n"; $i++; } close DB; close REV;