Partage
  • Partager sur Facebook
  • Partager sur Twitter

générateur d'ip

Sujet résolu
Anonyme
    5 septembre 2014 à 20:41:38

    salut là je cherche et je mouline dans le vide ... je cherche a faire un ping d'un tres grand nombre de machines en fait. j'ai le code du ping maintenant, il faut générer des ip sous la forme : xx.xxx.x.xx et je sais pas comment faire avec random ou range. merci de votre aide.

    Folaefolc

    edit: j'ai réussi a faire ceci :

    for ip in range(10, 255):
    	ip = str(ip)
    	for ip2 in range(10, 255):
    		ip2 = str(ip2)
    		ip += '.' + ip2
    		for ip3 in range(0, 9):
    			ip3 = str(ip3)
    			ip += '.' + ip3
    			for ip4 in range(10, 255):
    				ip4 = str(ip4)
    				ip += '.' + ip4
    

    en tant que générateur mais je ne sais pas si il marche. avec idle c'est ok mais avec double clique j'ai que des trucs du type : .255
    le prob est que ip s'allonge et que si je le vide je perd tout et j'ai .255 par exemple

    -
    Edité par Anonyme 5 septembre 2014 à 20:54:45

    • Partager sur Facebook
    • Partager sur Twitter
      5 septembre 2014 à 21:07:27

      Pourquoi ne pas générer les différentes parties de l'ip séparément? Sinon tu pourrais regarder du coté du module re pour des opérations sur des chainess (et sinon tes ip doivent être valides ou tu met juste des nombres au pif?)
      • Partager sur Facebook
      • Partager sur Twitter
        5 septembre 2014 à 21:10:23

        Salut,

        Tu peux utiliser la méthode format() des chaînes de caractères:

        import random
        
        #nb sera le raccourci de la méthode randint
        nb = random.randint
        
        ip = "{}.{}.{}.{}".format(nb(10, 255), nb(10, 255), nb(0, 9), nb(10, 255))



        • Partager sur Facebook
        • Partager sur Twitter
        Précepte: Le mieux est l'ennemi du bien
        Anonyme
          5 septembre 2014 à 21:11:15

          au pif on sait jamais

          sinon j'ai suivit ton conseil et sa marche (rien n'a répondu pour le moment ...)

          code :

          import os
          import sys
          import subprocess
          from   random import *
          
          cpt = 0
          nb_choisi = int(input("Entrez un nombre d'essai > "))
          
          def ip_aleatoire():
          	"""générateur d'ip"""
          	ip_stocke = ""
          	ip = randint(10, 255) ; ip_stocke += str(ip) + '.'
          	ip = randint(10, 255) ; ip_stocke += str(ip) + '.'
          	ip = randint(0, 9)    ; ip_stocke += str(ip) + '.'
          	ip = randint(10, 255) ; ip_stocke += str(ip)
          	return ip_stocke
          
          def execute(option, *machines):
          	for machine in machines:
          		result = subprocess.call(['ping', option, machine])
          		if not result:
          			print("Address {} OK".format(machine))
          			with open("ip.sas", "a") as ip_ok:
          				ip_ok.write(machine)
          		else:
          			print("Address {} no response".format(machine))
           
          OS = sys.platform
          option = '-n' if OS != 'win32' else ''
          while 1:
          	ip_genere = ip_aleatoire()
          	execute(option, ip_genere)
          	cpt += 1
          	if cpt >= nb_choisi: break
          
          input()

          Merci à toi !

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            5 septembre 2014 à 21:33:55

            je sais c'est résolu pourla génération d'ip mais j'ai un blem avec mes 7 thread : je n'obtiens pas de résultats convaincaints, je veux dire je ping 1'000'000 d'adresses tres tres vite okey (environ 5 minutes à 10 minutes seulement) et aucunes adresses ne répond

            voici donc mon code :

            import os
            import sys
            import subprocess
            from   threading import *
            from   random    import *
            
            cpt = 0
            OS  = sys.platform
            option    = '-n' if OS != 'win32' else ''
            nb_choisi = int(input("Entrez un nombre d'essai > "))
            
            def ip_aleatoire():
            	"""générateur d'ip"""
            	ip_stocke = ""
            	ip = randint(10, 255) ; ip_stocke += str(ip) + '.'
            	ip = randint(10, 255) ; ip_stocke += str(ip) + '.'
            	ip = randint(0, 9)    ; ip_stocke += str(ip) + '.'
            	ip = randint(10, 255) ; ip_stocke += str(ip)
            	return ip_stocke
            
            def execute(option, *machines):
            	for machine in machines:
            		result = subprocess.call(['ping', option, machine])
            		if not result:
            			print("Address {} OK".format(machine))
            			with open("ip.sas", "a") as ip_ok:
            				ip_ok.write(machine)
            		else: pass
            
            def thread1():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            def thread2():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            def thread3():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            def thread4():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            def thread5():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            def thread6():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            def thread7():
            	global cpt
            	while 1:
            		ip_genere = ip_aleatoire()
            		execute(option, ip_genere)
            		cpt += 1
            		if cpt >= nb_choisi: break
            
            thread_1 = Thread(target=thread1)
            thread_2 = Thread(target=thread2)
            thread_3 = Thread(target=thread3)
            thread_4 = Thread(target=thread4)
            thread_5 = Thread(target=thread5)
            thread_6 = Thread(target=thread6)
            thread_7 = Thread(target=thread7)
            thread_1.start()
            thread_2.start()
            thread_3.start()
            thread_4.start()
            thread_5.start()
            thread_6.start()
            thread_7.start()
            
            input()

            Je posterai une video si elle marche (des fois le record ne s'etait meme pas lancé)
            edit : video : View My Video

            -
            Edité par Anonyme 5 septembre 2014 à 21:45:37

            • Partager sur Facebook
            • Partager sur Twitter

            générateur d'ip

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown