52 lines
1.5 KiB
Python
Executable file
52 lines
1.5 KiB
Python
Executable file
#! /usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Script pour placer les gens qui font du routeur advertisement sur le vlan
|
|
isolement
|
|
© Olivier Huber
|
|
License : GPLv2
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
sys.stdout = open('/tmp/badboys', 'a')
|
|
sys.stderr = open('/tmp/badboys', 'a')
|
|
import time
|
|
sys.path.append('/usr/scripts/gestion')
|
|
from ldap_crans import crans_ldap, is_actif
|
|
sys.path.append('/usr/scripts/utils')
|
|
from chambre_on_off import chambre_on_off
|
|
from time import sleep
|
|
if __name__ == '__main__':
|
|
Mac_ra = os.getenv('SOURCE_MAC')
|
|
print Mac_ra
|
|
with open('/tmp/badboys', 'a') as f:
|
|
print >>f, Mac_ra
|
|
Ldap = crans_ldap()
|
|
try:
|
|
Machine = Ldap.search('mac=%s' % Mac_ra, 'w' )['machine'][0]
|
|
except IndexError:
|
|
print u"La machine avec la mac %s n'est pas declarée !" % Mac_ra
|
|
sys.exit(1)
|
|
|
|
Host = Machine.nom()
|
|
Prop = Machine.proprietaire()
|
|
Bl = Prop.blacklist()
|
|
Bl_ipv6 = [ x for x in Bl if 'ipv6_ra' in x ]
|
|
for bl in Bl_ipv6:
|
|
if is_actif(bl):
|
|
# L'adhérent est déjà blacklisté
|
|
print "déjà blacklisté !!!!"
|
|
sys.exit(1)
|
|
else:
|
|
# L'adhérent n'est pas encore blacklisté
|
|
Prop.blacklist(['now', '-', 'ipv6_ra', Host])
|
|
print "ur a bad guy"
|
|
Prop.save()
|
|
Chbre = Machine.proprietaire().chbre()
|
|
chambre_on_off(Chbre, 'off')
|
|
time.sleep(5)
|
|
chambre_on_off(Chbre, 'on')
|
|
print str(Host), str(Prop), Machine.proprietaire().chbre()
|
|
sys.exit(0)
|