#! /usr/bin/env python # -*- coding: iso-8859-15 -*- """ Mise a jour periodique des listes d'ip et d'id disponibles. Copyright (C) Alexandre Bos, largement pompe sur ldap_crans.py Licence : GPLv2 """ from ldap_crans import crans_ldap from config import NETs from iptools import AddrInNet noms_fichiers = {'ip_fil' : '/usr/scripts/var/numeros_disponibles/ip_fixes'} db = crans_ldap() def _update_ip(plage, fichier): net = NETs[plage] pool_ip = [] # Pool d'IP ŕ tester for ne in net: ip = ne.split('/')[0] ip = ip.split('.') n = [] for i in ip: n.append(int(i)) while 1: if n[3] < 255: n[3] += 1 else: n[2] += 1 n[3] = 0 if n[2] == 255: break ip = "%d.%d.%d.%d" % tuple(n) if not AddrInNet(ip, ne): # On est allé trop loin break pool_ip.append(ip) resultat = '' #for ip in pool_ip: # if not db.exist('ipHostNumber=%s' % ip): # resultat += '%s\n' % ip # print '%s\n' % ip resultat = '1.2.3.5\n' f = open(noms_fichiers[fichier],'w') f.write(resultat) f.close def update_ip_fixe(): _update_ip('fil', 'ip_fil') update_ip_fixe()