C'est encore moi avec un nouveau problème...
J'ai établit un bout de script qui me compte le nombre d'adresse IP dans une plage. Voici le compte fonctionnel qui marche avec des IP entre xxx.xxx.8.xxx à xxx.xxx.11.xxx. enfin qui marche, pas tout à fait, des que je test avec un passage de la plage 9 à 10 ca tourne sans fin. Sinon ca fonctionne. J'ai beau regarde le passage de ces deux plages, j'ai pas trouvé de problème. Surtout que j'utilise deja ce script pour faire mes recherches sur les IP (Lance un script à chaque nouvelle IP).
Une idée pour l'améliorer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 # -*- coding: cp1252 -*- ### Librairies utiles import string #Permet de faire des operations sur les chaines de caractères (atoi : transforme un string et int) import os #Permet de faire des operations systeme import re ### adr_deb = "172.18.9.254" adr_fin = "172.18.10.2" plage = "Neuf" boucleip = 0 adr_ip = adr_deb adr_ip_nb = "" nbip = 1 #On initialise le nombre d'IP à 1 plagecompt = plage i = 0 if plagecompt == "Huit" or plagecompt == "Neuf": while boucleip == 0: if adr_ip.strip() == adr_fin.strip(): boucleip = 1 else: adr_ip_old = adr_ip[0:9] #On sauvegarde le début de l'IP adr_ip_nb_new = string.atoi(adr_ip[9:12]) #On transforme la chaine en nombre du dernier chiffre adr_ip_nb_new = adr_ip_nb_new + 1 nbip = nbip + 1 adr_ip_nb_new = repr(adr_ip_nb_new) #On transforme le nombre en chaine adr_ip = adr_ip_old + adr_ip_nb_new if adr_ip[9:12] == "256": if plagecompt == "Huit": adr_ip = re.sub("8.256", "9.1", adr_ip) plagecompte = "Neuf" else: adr_ip = re.sub("9.256", "10.1", adr_ip) plagecompt = "Dix" boucleip = 1 ##################### boucleip = 0 #On remet la boucle à Zéro ##################### if plagecompt == "Dix" or plagecompt == "Onze": while boucleip == 0: if adr_ip.strip() == adr_fin.strip(): boucleip = 1 else: adr_ip_old = adr_ip[0:10] #On sauvegarde le début de l'IP adr_ip_nb_new = string.atoi(adr_ip[10:13]) #On transforme la chaine en nombre du dernier chiffre adr_ip_nb_new = adr_ip_nb_new + 1 nbip = nbip + 1 adr_ip_nb_new = repr(adr_ip_nb_new) #On transforme le nombre en chaine adr_ip = adr_ip_old + adr_ip_nb_new if adr_ip[10:13] == "256": if plagecompt == "Dix": adr_ip = re.sub("10.256", "11.1", adr_ip) plagecompt = "Onze" print "nbip = ", nbip
EDIT : En fait ca marche tout le temps. Il faut juste que la plage de départ soit bonne sinon ca merde un peu. Je le marque en résolution car j'ai bien cerne en amont pour que la plage soit bonne. Je ne supprime pas mon message poru les personnes voulant faire ce genre de comptage.
Partager