[langage] Compter des éléments dans un tableau
Bonjour,
Voila, j'aimerais pouvoir récupérer à l'aide de 2fichiers quel port possède +sieurs adresses mac (c'est un trunk), quel port à 1seul adresse mac, et quel port n'a aucune adresse.
Pour cela mes 2 fichiers sont :
Citation:
0002.b9b0.5a80 Gi0/2
0002.b9b0.5ab2 Gi0/2
0008.e380.bced Gi0/1
000b.fd42.4c7f Gi0/1
000a.e602.ce92 Fa0/7
000b.fdd5.c07f Gi0/1
0008.e380.bced Gi0/1
000d.5622.5841 Fa0/20
.....
et
Citation:
Fa0/1
Fa0/2
Fa0/3
Fa0/4
Fa0/5
Fa0/6
Fa0/7
Fa0/8
......
......
Gi0/1
Gi0/2
Voila un petit bout de code, tout en sachant que je suis débutante en perl.
Il ne fonctionne pas comme je voudrais évidemment.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#!/usr/bin/perl -w
use strict;
use CGI;
open ( FichierIP,"../liste_des_adresses2b.txt") || die "\n impossible d'ouvrir le fichier nommé liste _des_adresses2b.txt $! \n\n" ;
open ( FichierPort,"../10.131.31.1b.txt") || die "\n impossible d'ouvrir le fichier nommé 10.131.31.1b.txt $! \n\n" ;
open ( FichierInterface,"../interface2.txt") || die "\n impossible d'ouvrir le fichier nommé interface2.txt $! \n\n" ;
# On affiche l'en-tête HTML
print("content-type : text/html\n\n");
my %Nb;
while( <FichierPort> ) {
# on supprime le retour chariot de la fin de la ligne
chomp;
#on sépare les adresses Mac des ports
my @LIGNES_FichPort = split;
my $mac2 = $LIGNES_FichPort[0] ;
my $port = $LIGNES_FichPort[1] ;
my $i;
$mac2 =~ tr/.//d;
$Nb{$port}++;
my @Port = keys (%Nb);
print "@Port \n";
#foreach $i(@Port){
# print "$Nb{$i} \n";
#}
print "</body></html>";
close (FichierIP);
close (FichierPort);
close (FichierInterface); |
En fait, j'aimerais pour l'instant compter le nombre d'adresse qui passe par le port gi0/1, fa0/1, fa0/2..., et ensuite afficher par mon 2ème fichier que le port gi0/1 par exemple est trunk (car +sieur adresse), le fa0/7 a 1seule adresse, et fa0/10 par exemple n'a pas d'adresse.
j'espère que vous m'avez comprise.
Merci pour votre aide.