Partage
  • Partager sur Facebook
  • Partager sur Twitter

prblème de ping

Anonyme
    7 septembre 2014 à 11:38:01

    Hello j'ai fait une def pour pinguer une adresse et tester tous les ports avec un for port in range(0, 65536) mais lors du ping j'ai une sacrée erreur : os win erreur 10038 l'opération demandée a été réalisée sur autre chose qu'une socket !

    mon code :

    def pinguing(machine):
    	global s
    	#port = 80
    	for port in range(0, 65536):
    		print(port)
    		print(type(port))
    		try:
    			machine = socket.gethostbyname(machine)
    			#Connect to remote server
    			s.connect((machine, port))
    		except socket.gaierror as erreur_socket:
    			s.close()
    			pass
    		else:
    			print(str(machine) + ":" + str(port) + " a répondu correctement.")

    Merci de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
      7 septembre 2014 à 16:43:44

      Pour quel(s) port(s) cela se produit-il ? Si c'est pour les ports 0 à 1023, c'est sans doute normal car ces ports sont (je crois) réservés au système.

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        7 septembre 2014 à 17:01:52

        oki merci je vais tester avec un port comme le 12500 alors
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          7 septembre 2014 à 17:11:15

          c'est bon je vois pourquoi, l'ordinateur refuse expressement les connexions entrantes

          comment faire pour que cela ne se fasse pas ?

          • Partager sur Facebook
          • Partager sur Twitter
            7 septembre 2014 à 17:12:46

            Si tu veux pinguer une adresse, avec cette méthode il faut obligatoirement que l'ordinateur cible "écoute" le port, avec un programme (python ou n'importe quel autre).

            Il faut que tu lances un programme sur l'ordinateur cible contenant ceci:

            import socket
            
            s = socket.socket()
            
            s.bind((ip_de_l_autre_ordi, 12500)) # Edit 3: correction des arguments
            s.listen(5) # Edit 2: rajout de cette ligne (5 désigne le nb max de connexions en attente)
            
            connexion, adresse = s.accept()
            print("connexion %s:%s acceptée" % adresse)
            

            Un vrai ping ne doit pas être réalisé de la même manière, puisque l'ordinateur cible n'a pas besoin d'écouter.

            -
            Edité par tatrats 7 septembre 2014 à 18:08:55

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              7 septembre 2014 à 17:17:47

              non ce n'est pas le cas. alors comment faire pour pinguer réellement le port / pc ?
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                7 septembre 2014 à 17:21:38

                oki merci je teste :)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  7 septembre 2014 à 17:43:06

                  j'ai la win error 10022 avec ceci :

                  def pinguing(machine):
                  	global s
                  	port = 50000
                  	for port in range(1024, 65536):
                  		try:
                  			port = int(port)
                  			machine = socket.gethostbyname(machine)
                  			#Connect to remote server
                  			s.bind((machine,port))
                  			connexion, adresse = s.accept()
                  			print("Connexion %s:%s acceptée." % adresse)
                  			s.connect((machine, port))
                  		except socket.gaierror as erreur_socket:
                  			s.close()
                  			pass
                  		else:
                  			print(str(machine) + ":" + str(port) + " a répondu correctement.")



                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 septembre 2014 à 17:50:56

                    J'avais oublié une ligne pour le code de l'ordinateur cible, j'ai modifié (5 messages plus haut)

                    -
                    Edité par tatrats 7 septembre 2014 à 17:57:30

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      7 septembre 2014 à 17:55:26

                      il n'y en pas de texte

                      juste un erreur d'os : winerror 10022 un argument invalide a été fournit

                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 septembre 2014 à 17:59:02

                        Il faudrait qu'on perde cette mauvaise habitude de poster en même temps.

                        tatrats a écrit:

                        J'avais oublié une ligne pour le code de l'ordinateur cible, j'ai modifié (5 messages plus haut)

                        -
                        Edité par tatrats



                        -
                        Edité par tatrats 7 septembre 2014 à 17:59:24

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          7 septembre 2014 à 18:00:55

                          ah oui j'avais pas vu ;) merci je re teste

                          ps: le binding se fait ainsi en fait (j'ai eu quelques erreurs et j'ai corrigé) : s.bind((ip, port))

                          car il faut un tuple

                          lorsque je ping 127.0.0.1 tout est okey ca marche mais ca attend attend attend . . . et je peux rien faire, je pense qu'il faudrait arreter la co et dire que c est ok vu que j'ai pas d'erreur

                          -
                          Edité par Anonyme 7 septembre 2014 à 18:05:19

                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 septembre 2014 à 18:33:05

                            Pour faire un ping qui envoie une réponse :

                            source du ping:

                            import socket
                            
                            CIBLE = '192.168.1.2'
                            PORT = 12500
                            
                            skt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                            
                            temps = time.time()
                            
                            try:
                                skt.connect((CIBLE, PORT))
                            
                            except OSError as err:
                                print("Erreur réseau :", err)
                            
                            
                            message = skt.recv(1024).decode()
                            
                            print("Réponse de la cible en %.1f millisecondes : %s" % ((time.time() - temps) * 1000, message)
                            
                            skt.close()

                            Cible du ping:

                            import socket
                            
                            SOURCE = '192.168.1.1'
                            PORT = 12500
                            
                            skt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                            
                            try:
                                skt.bind((SOURCE, PORT))
                            except OSError as err:
                                print("Erreur réseau :", err)
                            
                            skt.listen(1)
                            
                            connexion, adresse = skt.accept()
                            
                            print("ping reçu de %s:%s" % adresse)
                            connexion.send("Connexion acceptée")
                            
                            connexion.close()
                            print("connexion interrompue")

                            -
                            Edité par tatrats 7 septembre 2014 à 18:37:05

                            • Partager sur Facebook
                            • Partager sur Twitter

                            prblème de ping

                            × 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