Detabification
darcs-hash:20050715153639-d1718-f52169c6a0b4a9dd0969f54f4aa4cf8db0a9d8da.gz
This commit is contained in:
parent
efdc7b91de
commit
c090c69ae4
1 changed files with 24 additions and 24 deletions
|
@ -22,9 +22,9 @@ def QuadToDec(ip) :
|
||||||
if len(test)!=4 : raise ValueError('IP Invalide')
|
if len(test)!=4 : raise ValueError('IP Invalide')
|
||||||
ip_dec = 0
|
ip_dec = 0
|
||||||
for z in range(0,4) :
|
for z in range(0,4) :
|
||||||
n = int(test[z])
|
n = int(test[z])
|
||||||
if n<0 or n>255 : raise ValueError('IP Invalide')
|
if n<0 or n>255 : raise ValueError('IP Invalide')
|
||||||
ip_dec += n * ( 256**(3-z) )
|
ip_dec += n * ( 256**(3-z) )
|
||||||
|
|
||||||
__QuadToDecDone[ip] = ip_dec
|
__QuadToDecDone[ip] = ip_dec
|
||||||
return ip_dec
|
return ip_dec
|
||||||
|
@ -35,42 +35,42 @@ def DecToQuad(ip_dec) :
|
||||||
ip_dec est l'IP en base 10
|
ip_dec est l'IP en base 10
|
||||||
"""
|
"""
|
||||||
try :
|
try :
|
||||||
return "%d.%d.%d.%d" % ( \
|
return "%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 )
|
||||||
except :
|
except :
|
||||||
raise ValueError('IP Invalide')
|
raise ValueError('IP Invalide')
|
||||||
|
|
||||||
def param(net) :
|
def param(net) :
|
||||||
"""
|
"""
|
||||||
net est un résau fourni sous la forme xxx.xxx.xxx.xxx/yy
|
net est un résau fourni sous la forme xxx.xxx.xxx.xxx/yy
|
||||||
si donnée valide retourne un dictionnaire :
|
si donnée valide retourne un dictionnaire :
|
||||||
{ 'network' : xxx.xxx.xxx.xxx ,
|
{ 'network' : xxx.xxx.xxx.xxx ,
|
||||||
'netmask' : yyy.yyy.yyy.yyy ,
|
'netmask' : yyy.yyy.yyy.yyy ,
|
||||||
'broadcast' : zzz.zzz.zzz.zzz }
|
'broadcast' : zzz.zzz.zzz.zzz }
|
||||||
sinon retourne {}
|
sinon retourne {}
|
||||||
"""
|
"""
|
||||||
reseau = {}
|
reseau = {}
|
||||||
ip, mask = net.split('/')
|
ip, mask = net.split('/')
|
||||||
|
|
||||||
try :
|
try :
|
||||||
mask = int(mask)
|
mask = int(mask)
|
||||||
dec_ip = QuadToDec(ip)
|
dec_ip = QuadToDec(ip)
|
||||||
if dec_ip == -1 : raise
|
if dec_ip == -1 : raise
|
||||||
except :
|
except :
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
# Calcul du netmask
|
# Calcul du netmask
|
||||||
dec_netmask=0
|
dec_netmask=0
|
||||||
non_dec_netmask=0 # On calcule aussi le complémentaire
|
non_dec_netmask=0 # On calcule aussi le complémentaire
|
||||||
for i in range(0,32) :
|
for i in range(0,32) :
|
||||||
if i < mask :
|
if i < mask :
|
||||||
dec_netmask += 2**(31-i)
|
dec_netmask += 2**(31-i)
|
||||||
else :
|
else :
|
||||||
non_dec_netmask += 2**(31-i)
|
non_dec_netmask += 2**(31-i)
|
||||||
|
|
||||||
reseau['netmask'] = DecToQuad(dec_netmask)
|
reseau['netmask'] = DecToQuad(dec_netmask)
|
||||||
|
|
||||||
# Calcul du network
|
# Calcul du network
|
||||||
|
@ -92,19 +92,19 @@ def AddrInNet(ip,net) :
|
||||||
|
|
||||||
r = False
|
r = False
|
||||||
for ne in net :
|
for ne in net :
|
||||||
n = param(ne)
|
n = param(ne)
|
||||||
if ip == n['broadcast'] or ip ==n['network'] :
|
if ip == n['broadcast'] or ip ==n['network'] :
|
||||||
return False
|
return False
|
||||||
r = r or QuadToDec(n['netmask']) & QuadToDec(ip) == QuadToDec(n['network'])
|
r = r or QuadToDec(n['netmask']) & QuadToDec(ip) == QuadToDec(n['network'])
|
||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
def AddrInNets(ip,nets) :
|
def AddrInNets(ip,nets) :
|
||||||
""" Vérifie si l'ip est au moins dans un des réseaux
|
""" Vérifie si l'ip est au moins dans un des réseaux
|
||||||
de la liste nets (voir AddrInNet) """
|
de la liste nets (voir AddrInNet) """
|
||||||
for net in nets :
|
for net in nets :
|
||||||
if AddrInNet(ip,net) :
|
if AddrInNet(ip,net) :
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if __name__ == '__main__' :
|
if __name__ == '__main__' :
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue