Bonjour

Mon but est d'obtenir l'adresse MAC d'un port sur un commutateur
je connais $adresseequipement ; $port (le nom du port - ex: Ethernet 1) ; communauteRO

# j'interroge le switch sur OID : "BRIDGE-MIB::dot1dTpFdbPort"
# je constitue mon fichier tampon avec comme format de sortie
# oid = INTERGER: numduport

Code : Sélectionner tout - Visualiser dans une fenêtre à part
snmpwalk -v2c -c $communauteRO $adresseequipement .1.3.6.1.2.1.17.4.3.1.2 -On | awk -F ".1.3.6.1.2.1.17.4.3.1.2" {' print $2 '} |awk -F "=" {' print $1 $2'} >> fichiertampon.tmp
resultat : (le fichier peut contenir > 1500 lignes)
.144.251.166.22.66.156 INTEGER: 41
.144.251.166.22.66.160 INTEGER: 23
.144.251.166.22.66.171 INTEGER: 23

# je recherche dans le fichier tampon le port et affecte à la variable numportsnmp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
numportsnmp=`cat fichiertampon.tmp | grep ": $port$" | awk -F" " {' print $1 '}`
# après quelques tests sur vieillesse du fichier tampon, adresse seule
# portx=$numportsnmp

# j'interroge le switch sur OID : "BRIDGE-MIB::dot1dTpFdbAddress"
# pour récupérer l'adresse MAC
Code : Sélectionner tout - Visualiser dans une fenêtre à part
adressemacport=`snmpget -v2c -c $communauteRO $adresseequipement .1.3.6.1.2.1.17.4.3.1.1$portx -Ouv | awk -F "STRING:" {'print $2'}`
resultat : l'adresse MAC
90:fb:a6:16:42:9c

questions :
1 - suis-je obligé de passer par un fichier tampon ?
2 - y a t-il une méthode plus efficace ?

d'avance merci