如何忽略 telnetlib 错误并在 python 中继续 For 循环

How to ignore telnetlib errors and continue For loop in python

我想使用带有 python 的 telnetlib 来远程登录 IP 范围,所以我使用了这段代码

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

问题是当我执行该代码时,如果没有可用的 IP,它会显示此错误:

 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

我想忽略任何错误并继续循环直到我停止它。 请您的回答应该使用 python 而不是任何其他语言。

试试这个:

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