我有一个unix shell脚本,用于测试文件中列出的多个主机的ftp端口.
for i in `cat ftp-hosts.txt`
do
echo "QUIT" | telnet $i 21
done
Run Code Online (Sandbox Code Playgroud)
一般来说这个脚本有效,但是如果我遇到一个没有连接的主机,即telnet是"正在尝试...",我怎样才能减少这个等待时间,以便它可以测试下一个主机?
我整天都试着telnet localhost 5554
在命令行中运行命令,但是我没有成功.它不停地说telnet is recognized as an internal or external command...
.该目录设置为我的Android SDK工具的安装位置(C:\Program Files\Android\android-sdk\tools
).也许这条道路不正确,但我不知道还能做什么.我已经改变了通往其他的道路,但没有成功.请帮我.
提前致谢.
我有一个嵌入式系统,我在其上telnet
运行,然后在后台运行一个应用程序:
./app_name &
Run Code Online (Sandbox Code Playgroud)
现在如果我关闭我的终端并telnet
从其他终端做,如果我检查然后我可以看到这个过程仍在运行.
为了检查这个,我写了一个小程序:
#include<stdio.h>
main()
{
while(1);
}
Run Code Online (Sandbox Code Playgroud)
我在后台运行我的本地linux pc程序,然后我关闭了终端.
现在,当我从其他终端检查这个过程时,我发现这个过程也被杀死了.
我的问题是:
我们有网络摄像头.它有一个HTTP服务器来提供当前图像.还有一个用于控制摄像头的Telnet接口(即触发器,焦点等).我想在相机中添加一个HTML页面,它提供了一个简单的界面(我们已经有了我们编写的客户端软件).我可以"获取"图像并显示它,但我也希望有控件使用Telnet接口来控制相机.因此,按钮后面可能有JavaScript代码,通过Telnet连接到摄像头(登录)并发出触发摄像头的命令.
我知道JavaScript /浏览器支持通过XMLHttpRequest连接到同一主机.在这种情况下,我将寻找在端口23上打开一个套接字并发送文本.我也知道我可以通过Flash,Java或其他技术来实现这一点,但我更愿意只使用JavaScript.如果可能的话.
我运行以下批处理文件以建立到设备的telnet会话,并创建一个文件来保存从设备中提取的信息.
CD\
COLOR 0E
CLS
@echo off
ECHO This will start the connection to the Heraeus QuicK-Lab DATACAST ENtouch.
pause
telnet 172.17.0.16 4224 -f C:\LogFiles\Datacast.log
Run Code Online (Sandbox Code Playgroud)
建立telnet会话后,我输入一个命令,将数据转储到最后一行代码中指定的Datacast.log.我希望以某种方式在批处理文件中包含命令(例如"M3,1,999"),但我找不到类似的例子.
是否可以使用批处理文件执行此操作?
我使用以下脚本使用Telnet重启我的路由器:
#!/usr/bin/env python
import os
import telnetlib
from time import sleep
host = "192.168.1.1"
user = "USER"
password = "PASSWORD"
cmd = "system restart"
tn = telnetlib.Telnet(host)
sleep(1)
tn.read_until("Login: ")
tn.write(user + "\n\r")
sleep(1)
tn.read_until("Password: ")
tn.write(password + "\n\r")
sleep(1)
tn.write(cmd + "\n\r")
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,但从上面的代码中删除"\ r"使脚本无法正常工作.那么"\ r"在这个脚本中做什么以及何时一般使用"\ r"?
注意:我知道"回车",但仍然无法弄清楚它在我的脚本中的用途.我在Linux中运行此脚本.
我试图通过我的mac osx上的终端上的telnet连接到TOR并请求新的身份,但它不起作用,我总是收到此错误消息:
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
Run Code Online (Sandbox Code Playgroud)
我使用此telnet命令进行连接:
telnet 127.0.0.1 9051
Run Code Online (Sandbox Code Playgroud)
并且想法为什么这不起作用?
谢谢
我正在编写一个后端程序,telnet到服务器,运行一些命令并保存这些命令的所有输出.像Expect一样的东西.
我想使用一个受到良好支持并使用JDK 6运行的开源解决方案.
到目前为止,我找到了3个选项,并希望能够帮助决定使用哪个(或更好的建议).
commons-net - 这得到了很好的支持,但我无法使用简单的"登录并执行'命令"命令.我更喜欢使用这个库,如果任何人都可以提供一个简单的例子(而不是带有来自用户的输入的示例)我想走那条路.
如果我无法使用commons-net,接下来的两个选项是:
JExpect - 这不是很难使用,我需要的是什么,但支持得有多好?它是否适用于JDK 6,我想是的.
Java Telnet应用程序(jta26) - 这很容易使用,但我不确定它是多么通用.我没有在TelnetWrapper中看到任何设置超时值的地方.自从上次更新网站到2005年以来,我也不确定是否维护此代码.(http://www.javassh.org)
我知道这有些是以意见为导向的,希望SO是一个帮助我做出决定的好地方所以我不会从一条路开始,后来发现它不是我想要的.
谢谢.
我想运行一组通常在telnet中运行的命令(来自c#).
例如,我想运行以下内容
using System;
using System.Diagnostics;
namespace InteractWithConsoleApp
{
class Program
{
static void Main(string[] args)
{
ProcessStartInfo cmdStartInfo = new ProcessStartInfo();
cmdStartInfo.FileName = @"C:\Windows\System32\cmd.exe";
cmdStartInfo.RedirectStandardOutput = true;
cmdStartInfo.RedirectStandardError = true;
cmdStartInfo.RedirectStandardInput = true;
cmdStartInfo.UseShellExecute = false;
cmdStartInfo.CreateNoWindow = true;
Process cmdProcess = new Process();
cmdProcess.StartInfo = cmdStartInfo;
cmdProcess.ErrorDataReceived += cmd_Error;
cmdProcess.OutputDataReceived += cmd_DataReceived;
cmdProcess.EnableRaisingEvents = true;
cmdProcess.Start();
cmdProcess.BeginOutputReadLine();
cmdProcess.BeginErrorReadLine();
cmdProcess.StandardInput.WriteLine("telnet telehack.com");
int milliseconds = 2000;
System.Threading.Thread.Sleep(milliseconds);
cmdProcess.StandardInput.WriteLine("exit");
cmdProcess.StandardInput.WriteLine("exit");
cmdProcess.WaitForExit();
}
static void cmd_DataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
} …
Run Code Online (Sandbox Code Playgroud)