44 lines
1.4 KiB
Python
Executable file
44 lines
1.4 KiB
Python
Executable file
#!/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)
|