我正在尝试编写脚本以允许我登录到控制台服务器48端口,以便我可以快速确定连接到每个串行线路的设备.
本质上我希望能够有一个脚本,给定一个主机/端口列表,telnet到列表中的第一个设备,并让我处于交互模式,以便我可以登录并确认设备,然后当我关闭telnet会话,连接到列表中的下一个会话.
我面临的问题是,如果我从可执行的bash脚本中启动telnet会话,会话立即终止,而不是等待输入.
例如,给出以下代码:
$ cat ./telnetTest.sh
#!/bin/bash
while read line
do
telnet $line
done
$
Run Code Online (Sandbox Code Playgroud)
当我运行命令'echo"hostname"| testscript.sh'我收到以下输出:
$ echo "testhost" | ./telnetTest.sh
Trying 192.168.1.1...
Connected to testhost (192.168.1.1).
Escape character is '^]'.
Connection closed by foreign host.
$
Run Code Online (Sandbox Code Playgroud)
有谁知道一种方法来阻止telnet会话自动关闭?
当我遇到问题时,我正在玩python 3.1.我想连接到telnet服务器.这是我的代码:
import sys
import telnetlib
tn = telnetlib.Telnet("10.0.0.138")
tn.read_until(b"Username :", 2)
tn.write(b"\n")
tn.read_until(b"Password :", 2)
tn.write(b"\n")
tn.read_until(b"=>", 2)
tn.write(b"exit\n")
tn.close
Run Code Online (Sandbox Code Playgroud)
它的工作原理是"用户名:".编写emty行时也没有错误消息.但是当我读到"密码:"时,我得到一个空字符串.当我读完所有内容时,我也会得到一个空字符串.
如果可以,请你帮助我.
编辑:这是我通过putty连接到服务器时的输出.
Willkommen am THOMSON TG787v
Plattform:VDNT-D Firmware:8.2.5.0 Seriennummer:CP0919MT238
Bitte identifizieren Sie sich mit Ihrem Benutzernamen und Kennwort
--------------------------------------------------------------------------------
Username :
Password :
------------------------------------------------------------------------
______ Thomson TG787v
___/_____/\
/ /\\ 8.2.5.0
_____/__ / \\
_/ /\_____/___ \ Copyright (c) 1999-2009, THOMSON
// / \ /\ \
_______//_______/ \ / _\/______
/ / \ \ / / / /\ …Run Code Online (Sandbox Code Playgroud) 当我尝试运行以下代码时......
from telnetsrvlib import *
if __name__ == '__main__':
"Testing - Accept a single connection"
class TNS(SocketServer.TCPServer):
allow_reuse_address = True
class TNH(TelnetHandler):
def cmdECHO(self, params):
""" [<arg> ...]
Echo parameters
Echo command line parameters back to user, one per line.
"""
self.writeline("Parameters:")
for item in params:
self.writeline("\t%s" % item)
def cmdTIME(self, params):
"""
Print Time
Added by dilbert
"""
self.writeline(time.ctime())
logging.getLogger('').setLevel(logging.DEBUG)
tns = TNS(("0.0.0.0", 8023), TNH)
tns.serve_forever()
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
Traceback (most recent call last):
File ".\telserv.py", line 1, in <module>
from …Run Code Online (Sandbox Code Playgroud) 我需要编写一个PHP脚本来telnet到路由器,运行命令并获取结果.有没有人知道PHP中的telnet连接库?
更新:这个请求(很明显)是很久以前的事了.最后,我不得不编写自己需要的客户端库.这个库(以及更多模块)的代码是开源的,可以在github上获得.谢谢大家的回答.
我已经知道有Python的ssh模块,这不是我想要的.我想要的是一个python脚本来执行以下操作:
提前致谢,
最好的祝福,
我正在研究一个机器人自动化项目,我遇到了一个障碍.要控制机器人,需要通过telnet以无线方式连接它,并通过tcp/ip协议发送命令.(例如,'Mabc'命令根据左轮速度(a),右轮速度(b)和时间(c)将其向前移动).我想要做的是在C程序中进行一些计算,然后根据计算值向机器人发送消息.
如何在C程序中通过tcp/ip协议发送命令?
谢谢!
埃里克
我一直在尝试让sqlplus从我的OS X机器连接到Oracle.我在这里问了另一个问题.
有人建议我试试telnet.咨询手册页,我试过:
[ ethan@gir ~ ]$ telnet DBHOST:1521
Trying xxx.xxx.xxx.xxx...
telnet: connect to address xxx.xxx.xxx.xxx: Operation timed out
telnet: Unable to connect to remote host
Run Code Online (Sandbox Code Playgroud)
也...
[ ethan@gir ~ ]$ telnet DBHOST 1521
Run Code Online (Sandbox Code Playgroud)
......结果相同.
我不确定如何解释这些结果.看起来像你在任何情况下所期望的那样.你不会这样做......
$ ssh some_mysql_host:3306
Run Code Online (Sandbox Code Playgroud)
telnet与Oracle有何不同?
或许我不明白他们的意思.
如果有人可以帮助我理解如何使用telnet测试与Oracle的连接,我将不胜感激.
是否有针对Java的开源telnet API /库(类似于Python telnetlib)?我需要使用telnet连接到服务器并从Java程序中执行一些命令.
如何发送一个字节(或字节)来测试正在我的应用程序中的端口上侦听的TCP套接字?我的应用程序收到一个字节,告诉它该做什么.某些操作将接收额外的字节以进一步指示它.
我已经尝试过使用Telnet,但是当我输入int值时,它似乎发送了int(4个字节).
我只需要发送一个字节(8位),而不是4字节的序列.有没有简单的方法来测试我的套接字应用程序?我应该创建另一个应用程序来测试吗?
我尝试telnet在我的笔记本电脑的git bash中使用命令,但它显示错误telnet.我的笔记本电脑系统是Windows 10.任何想法都表示赞赏.