Detabification

darcs-hash:20050715153639-d1718-f52169c6a0b4a9dd0969f54f4aa4cf8db0a9d8da.gz
This commit is contained in:
bernat 2005-07-15 17:36:39 +02:00
parent efdc7b91de
commit c090c69ae4

View file

@ -22,9 +22,9 @@ def QuadToDec(ip) :
if len(test)!=4 : raise ValueError('IP Invalide')
ip_dec = 0
for z in range(0,4) :
n = int(test[z])
if n<0 or n>255 : raise ValueError('IP Invalide')
ip_dec += n * ( 256**(3-z) )
n = int(test[z])
if n<0 or n>255 : raise ValueError('IP Invalide')
ip_dec += n * ( 256**(3-z) )
__QuadToDecDone[ip] = ip_dec
return ip_dec
@ -35,41 +35,41 @@ def DecToQuad(ip_dec) :
ip_dec est l'IP en base 10
"""
try :
return "%d.%d.%d.%d" % ( \
return "%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 )
except :
raise ValueError('IP Invalide')
raise ValueError('IP Invalide')
def param(net) :
"""
net est un résau fourni sous la forme xxx.xxx.xxx.xxx/yy
si donnée valide retourne un dictionnaire :
{ 'network' : xxx.xxx.xxx.xxx ,
'netmask' : yyy.yyy.yyy.yyy ,
'broadcast' : zzz.zzz.zzz.zzz }
{ 'network' : xxx.xxx.xxx.xxx ,
'netmask' : yyy.yyy.yyy.yyy ,
'broadcast' : zzz.zzz.zzz.zzz }
sinon retourne {}
"""
reseau = {}
ip, mask = net.split('/')
try :
mask = int(mask)
dec_ip = QuadToDec(ip)
if dec_ip == -1 : raise
mask = int(mask)
dec_ip = QuadToDec(ip)
if dec_ip == -1 : raise
except :
return {}
return {}
# Calcul du netmask
dec_netmask=0
non_dec_netmask=0 # On calcule aussi le complémentaire
for i in range(0,32) :
if i < mask :
dec_netmask += 2**(31-i)
else :
non_dec_netmask += 2**(31-i)
if i < mask :
dec_netmask += 2**(31-i)
else :
non_dec_netmask += 2**(31-i)
reseau['netmask'] = DecToQuad(dec_netmask)
@ -92,10 +92,10 @@ def AddrInNet(ip,net) :
r = False
for ne in net :
n = param(ne)
if ip == n['broadcast'] or ip ==n['network'] :
return False
r = r or QuadToDec(n['netmask']) & QuadToDec(ip) == QuadToDec(n['network'])
n = param(ne)
if ip == n['broadcast'] or ip ==n['network'] :
return False
r = r or QuadToDec(n['netmask']) & QuadToDec(ip) == QuadToDec(n['network'])
return r
@ -103,8 +103,8 @@ def AddrInNets(ip,nets) :
""" Vérifie si l'ip est au moins dans un des réseaux
de la liste nets (voir AddrInNet) """
for net in nets :
if AddrInNet(ip,net) :
return True
if AddrInNet(ip,net) :
return True
return False
if __name__ == '__main__' :