Python 从文件读取路由器 IP 并进行 Telnet 连接

0 投票
1 回答
977 浏览
提问于 2025-04-18 11:55

我想从一个文本文件中读取一个路由器的IP地址,然后通过telnet连接到它:

import sys
import telnetlib

f = open("C:\\MyIP.txt","r")
line = f.readline()

user = "username"
password = "password"

for line in f:

  tn = telnetlib.Telnet(line)
  tn.read_until("Login: ")
  tn.write(user + "\n")
  if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")

f.close()

但是,在上面的代码中,如果我直接从文件中读取,它就不工作。

只有这样:

import getpass
import sys
import telnetlib
hostserver = "192.168.2.1"
newline = "\n"
username = "username" + newline
password = "password" + newline
telnet = telnetlib.Telnet(hostserver)
telnet.read_until("Login: ")
telnet.write(username+ "\n")
telnet.read_until("Password: ")
telnet.write(password+ "\n")
while 1:
    command = raw_input("> ")
    telnet.write(command+ "\n")
    if command == "exit":
        break
    telnet.read_all()

任何帮助都很感谢

1 个回答

1

你有这样的代码:

line = f.readline()

然后稍后,你有:

for line in f:

这个 for 循环会遍历文件中每一行 那些还没有被读取的行。看起来你其实并不想要循环。可以去掉这个 for 语句,因为你的 line 变量在上面已经设置好了。

撰写回答