diff --git a/gestion/iptools.py b/gestion/iptools.py index a130e6a0..a4f500e4 100755 --- a/gestion/iptools.py +++ b/gestion/iptools.py @@ -28,18 +28,25 @@ def QuadToDec(ip) : __QuadToDecDone[ip] = ip_dec return ip_dec + +# Pour accélérer DecToQuad +__DecToQuadDone = {} def DecToQuad(ip_dec) : """ Retourne la représentation habituelle d'une ip (xxx.xxx.xxx.xxx) ip_dec est l'IP en base 10 """ + if ip_dec in __DecToQuadDone: + return __DecToQuadDone[ip_dec] try : - return "%d.%d.%d.%d" % ( \ + result = "%d.%d.%d.%d" % ( \ ip_dec/(256**3) , (ip_dec%(256**3)) / (256**2) , ( (ip_dec%(256**3)) % (256**2) ) / 256 , ( (ip_dec%(256**3)) % (256**2) ) % 256 ) + __DecToQuadDone[ip_dec] = result + return result except : raise ValueError('IP Invalide')