On refuse la MAC si elle n'est pas d'un constructeur connu plutot que de
refuser celles ne commencant pas par 00. darcs-hash:20050923213505-41617-664368838711143f2797c92dc99c5a058bd55d6b.gz
This commit is contained in:
parent
7419250d8d
commit
201f976b98
2 changed files with 7686 additions and 4 deletions
7665
gestion/ethercodes.dat
Normal file
7665
gestion/ethercodes.dat
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1862,12 +1862,29 @@ class machine(base_classes_crans) :
|
||||||
raise ValueError(u'Mac déja utilisée sur le réseau.',1)
|
raise ValueError(u'Mac déja utilisée sur le réseau.',1)
|
||||||
|
|
||||||
# La MAC serait-elle une MAC à la con ?
|
# La MAC serait-elle une MAC à la con ?
|
||||||
if mac.lower() == "00:04:4b:80:80:03":
|
if mac == "00:04:4b:80:80:03":
|
||||||
raise ValueError(u"Il s'agit de l'unique adresse MAC achetée par nVidia pour ses cartes réseau. Il faut changer cette adresse.",2)
|
raise ValueError(u"Il s'agit de l'unique adresse MAC achetée par nVidia pour ses cartes réseau. Il faut changer cette adresse.",2)
|
||||||
elif mac.lower()[0:11] == "44:45:53:54":
|
elif mac[0:11] == "44:45:53:54":
|
||||||
raise ValueError(u"Il s'agit de l'adresse MAC d'une interface PPP.", 2)
|
raise ValueError(u"Il s'agit de l'adresse MAC d'une interface PPP.", 2)
|
||||||
elif mac[0:2] != "00":
|
|
||||||
raise ValueError(u"L'adresse MAC correspond à un pont réseau, désactivez ce pont réseau (ou contactez une nounou si ce n'est pas un pont réseau).",2)
|
# Le test final
|
||||||
|
# Extraction des trois premiers chiffres de la mac en
|
||||||
|
# supprimant les zéros superflus pour coller au format
|
||||||
|
# de la base d'arpwatch
|
||||||
|
prefix=mac[:8].replace(':0',':') + '\t'
|
||||||
|
if prefix[0]=='0' : prefix=prefix[1:]
|
||||||
|
vendor = ''
|
||||||
|
try:
|
||||||
|
for line in open('/usr/scripts/gestion/ethercodes.dat').readlines() :
|
||||||
|
if line.find(prefix)==0 :
|
||||||
|
vendor = line.replace(prefix,'').strip()
|
||||||
|
break
|
||||||
|
except IOError:
|
||||||
|
# Le fichier existe pas, on sors
|
||||||
|
raise RuntimeError("Fichier de fabiquants de MAC non trouvé !")
|
||||||
|
|
||||||
|
if not vendor :
|
||||||
|
raise ValueError(u"Le constructeur correspondant à cette adresse MAC ne peut être trouvé.\nL'adresse MAC correspond peut-être à un pont réseau, désactivez ce pont réseau.\nContactez nounou si la MAC est bien celle d'une carte.",2)
|
||||||
|
|
||||||
# Lock de la mac
|
# Lock de la mac
|
||||||
self.lock('macAddress',mac)
|
self.lock('macAddress',mac)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue