scripts/munin/stats-ip_
chove 486fe1870b * on ne prend pas en compte les adresses en .0 et .255 car meme quand c'est
pas une adresse de rseau/brodcast, windows ne sait pas la prend (on ne les
attribu  pesonne)
* on ne fait qu'un fois le calcul du pourcentage et du nombre d'ip utiliss

darcs-hash:20060508193253-4ec08-2c54dbbca3c957211a11ae7a50b10f68e8a11616.gz
2006-05-08 21:32:53 +02:00

46 lines
1.3 KiB
Python
Executable file

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# Plugin pour visualiser l'utilisation des plages ip
import sys, string
sys.path.append('/usr/scripts/gestion')
from ldap_crans import crans_ldap
from config import NETs
from iptools import AddrInNet
ips = [ x.ip() for x in crans_ldap().search('ip=*')['machine'] ]
# On prend l'argument pour définir la plage d'ip à analyser
SUBNET = sys.argv[0].split('_')[1]
try :
arg = sys.argv[1]
except :
arg = ''
if arg == "config" :
if len(SUBNET) == 1 : NOM = "Bâtiment %s" % string.upper(SUBNET)
else: NOM = SUBNET
print 'host_name adresses-ip'
print 'graph_title Statistiques adresses IP - %s' % NOM
print 'graph_args --base 1000 --lower-limit 0'
print 'graph_category network'
print "graph_vlabel nb d'ips"
print "utilisees.label IP utilisées"
print "utilisees.draw AREA"
print "total.label Total disponibles"
else :
total = 0
for net in NETs[SUBNET]:
total += 2 ** ( 32 - int( net.split('/')[1] ) )
# on ne prend pas en compte les adresses .0 et .255
total = total - int(total/128)
utilisees = len( [ ip for ip in ips if AddrInNet( ip, NETs[SUBNET] ) ] )
print "utilisees.value %d" % utilisees
print "total.value %s" % total