2017-03-23 5 views
0

Je veux utiliser telnetlib avec python à la gamme telnet d'adresses IP je donc utilisé ce codeComment ignorer les erreurs de telnetlib et continuer la boucle en python

import ipaddress 
import telnetlib 
import time 

def looping_ip() : 
    for j in range(1, 50, 1): 
     ip = "192.168.1.%d" % (j) 
     connection = telnetlib.Telnet() 
     connection.open(ip) 
     connection.read_until("Password:") 
     connection.write("admin"+"\n") 
     connection.read_eager() 
     return True 

Le problème est quand j'exécute ce code s'il y a une adresse IP n'est pas disponible, il affiche cette erreur:

Traceback (most recent call last): 
    File "/root/Desktop/testing.py", line 12, in <module> 
    connection.open(ip) 
    File "/usr/lib/python2.7/telnetlib.py", line 227, in open 
    self.sock = socket.create_connection((host, port), timeout) 
    File "/usr/lib/python2.7/socket.py", line 575, in create_connection 
    raise err 
error: [Errno 110] Connection timed out 

Je veux ignorer toute erreur et continuer la boucle jusqu'à ce que je l'ai arrêté. s'il vous plaît votre réponse devrait être avec python pas d'autre langue.

Répondre

0

Essayez ceci:

import ipaddress 
import telnetlib 
import time 

def looping_ip() : 
    for j in range(1, 50, 1): 
     ip = "192.168.1.%d" % (j) 
     try: 
      connection = telnetlib.Telnet() 
      connection.open(ip) 
      connection.read_until("Password:") 
      connection.write("admin"+"\n") 
      connection.read_eager() 
      return True 
     except: 
      continue 
+0

rien ne se passait seul spectacle de code qui ne ===================== RESTART:/root/Desktop/test .py ==================== >>> –

+0

Je ne suis pas sûr de ce que signifie cette sortie dans votre cas. L'utilisation des blocs 'try' et' except' était uniquement destinée à contourner les erreurs qui résulteraient de l'ouverture d'une connexion avec une adresse IP invalide. –

+0

signifie que le code n'est pas correct, que le code est exécuté et se termine immédiatement. –