Acceleration de QuadToDec aussi...

darcs-hash:20050715153842-d1718-990cd3f4e7b3e6233afc166d962d71ab179b9b1a.gz
This commit is contained in:
bernat 2005-07-15 17:38:42 +02:00
parent c090c69ae4
commit 10eda9a824

View file

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