Trouver une adresse MAC sur un switch...

darcs-hash:20041005150906-d1718-9595a5b4685ed677b03fd9e53a3b43a74fded3d5.gz
This commit is contained in:
bernat 2004-10-05 17:09:06 +02:00
parent 84da535d8b
commit 65f1a9c4c2

View file

@ -262,6 +262,27 @@ class hpswitch :
# Pas de MAC trouvée
return []
def where_is_mac(self, mac) :
"""Retrouve la prise correspondant à une adresse MAC donnée"""
if self.__debug : self.__logDest.write("HP DEBUG : where_is_mac(mac=%s)\n" % mac)
# On va transformer l'adresse MAC cherchée pour la mettre au format 0A 0A 0A 0A 0A 0A
mac = mac.upper()
mac = filter(lambda x: x in "0123456789ABCDEF", mac) # 0A0A0A0A0A0A
mac = "%s %s %s %s %s %s" % (mac[0:2], mac[2:4], mac[4:6],
mac[6:8], mac[8:10], mac[10:12])
# On interroge le switch
data = self.walk('SNMPv2-SMI::enterprises.11.2.14.11.5.1.9.4.2.1.2');
# On cherche dans data la bonne adresse MAC
for (onesnmp, onemac) in data.iteritems():
if onemac[1:-2] == mac:
return int(onesnmp.split(".")[12])
# On a rien trouvé
return None
def set_prise_mac(self,prise='',mac='') :
""" Défini les adresses mac autorisées sur une prise.
@ -390,7 +411,7 @@ class hpswitch :
elif mode[0] == 1000 :
if code == 8 : code += 1
elif code == 2 : raise ValueError('Mode invelide %s' % mode)
else code += 1
else: code += 1
self.set('CONFIG-MIB::hpSwitchPortFastEtherMode.%s' % prise,'i',code)