#!/usr/bin/env python # -*- coding: utf-8 -*- # Compteur des sets ipset import sys,commands,string IPSET = "ipset -L " if sys.argv[0].endswith('macip'): MACIP = True else: MACIP = False try : arg = sys.argv[1] except : arg = '' CHAINS = commands.getoutput('%s | grep -- ^Name: | awk \'{print $2}\'' % IPSET).split('\n') CHAINS = [ chain for chain in CHAINS if (not MACIP and not chain.startswith('MAC-IP')) or ( MACIP and chain.startswith('MAC-IP')) ] if arg == "config" : print 'graph_title Ipset' + (MACIP and ' test mac-ip' or '') print 'graph_args --base 1000 --lower-limit 0' print 'graph_category network' print "graph_vlabel nb de regles" for chain in CHAINS : nom = string.lower(chain.replace('_', '').replace('-', '').replace('.','').replace('/', '')) label = chain.replace('_', '-').replace('.','-').replace('/','-') print "%s.label %s" % (nom, label) if CHAINS.index(chain) == 0 : print "%s.draw AREA" % nom else : print "%s.draw STACK" % nom else : for chain in CHAINS : nom = string.lower(chain.replace('_', '').replace('-', '').replace('.','').replace('/', '')) label = chain.replace('_', '-').replace('.','-').replace('/','-') value = int(commands.getoutput('%s %s | wc -l' % (IPSET, chain))) - 6 print "%s.value %d" % (nom, value)