Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中忽略telnetlib错误并继续For循环_Python_Ip Address_Telnet_Telnetlib - Fatal编程技术网

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

如何在python中忽略telnetlib错误并继续For循环,python,ip-address,telnet,telnetlib,Python,Ip Address,Telnet,Telnetlib,我想将telnetlib与python结合使用,以实现IP的telnet范围,因此我使用了以下代码 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)

我想将telnetlib与python结合使用,以实现IP的telnet范围,因此我使用了以下代码

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
回溯(最近一次呼叫最后一次):
文件“/root/Desktop/testing.py”,第12行,在
连接。打开(ip)
文件“/usr/lib/python2.7/telnetlib.py”,第227行,打开
self.sock=socket.create_连接((主机、端口),超时)
文件“/usr/lib/python2.7/socket.py”,第575行,在create_connection中
提出错误
错误:[Errno 110]连接超时
我想忽略任何错误并继续循环直到我停止它。 请使用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

什么也没发生只有代码显示只有===============================重新启动:/root/Desktop/testing.py==========================>>>我不确定输出在您的情况下意味着什么。使用
try
except
块只是为了绕过因尝试打开具有无效ip的连接而产生的任何错误。输出表示代码不正确,代码立即运行并结束。循环\u ip()如果该范围内的所有ip地址都产生错误,函数将返回
None
。考虑<代码>返回值如何影响您周围的代码。我编辑了一些东西,它很好,谢谢Onel: