标签: telnet

真的很奇怪在C#中使用TcpClient的HTTP客户端

我正在实现一个简单的HTTP客户端,它只连接到Web服务器并获取其默认主页.在这里,它很好用:

using System;
using System.Net.Sockets;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            TcpClient tc = new TcpClient();
            tc.Connect("www.google.com", 80);

            using (NetworkStream ns = tc.GetStream())
            {
                System.IO.StreamWriter sw = new System.IO.StreamWriter(ns);
                System.IO.StreamReader sr = new System.IO.StreamReader(ns);

                string req = "";
                req += "GET / HTTP/1.0\r\n";
                req += "Host: www.google.com\r\n";
                req += "\r\n";

                sw.Write(req);
                sw.Flush();

                Console.WriteLine("[reading...]");
                Console.WriteLine(sr.ReadToEnd());
            }
            tc.Close();
            Console.WriteLine("[done!]");
            Console.ReadKey();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从上面的代码中删除下面的行时,程序会在sr.ReadToEnd阻塞.

req += "Host: www.google.com\r\n";
Run Code Online (Sandbox Code Playgroud)

我甚sr.Read替换了 …

.net webserver tcp telnet httpclient

8
推荐指数
1
解决办法
1万
查看次数

如何在Perl中屏蔽来自telnet的输出?

我可以在Perl中设置一个telnet连接没有问题,刚刚发现了Curses,我想知道我是否可以一起使用这两个连接来从telnet会话中获取输出.

我可以使用下面的简单脚本在行,列的基础上查看STDOUT的内容:

use Curses;
my $win = new Curses;
$win->addstr(10, 10, 'foo');
$win->refresh;
my $thischar=$win->inch(10,10);
print "Char $thischar\n";
Run Code Online (Sandbox Code Playgroud)

使用下面我可以打开一个telnet连接并发送\ receive命令没有问题:

use net::telnet;
my $telnet = new Net::Telnet (Timeout => 9999,);
$telnet->open($ipaddress) or die "telnet open failed\n";
$telnet->login($user,$pass);
my $output = $telnet->cmd("command string");
Run Code Online (Sandbox Code Playgroud)

...但我真正想做的是获取telnet响应(包括终端控制字符),然后使用curses在行/列上搜索.有谁知道我可以将两者连接在一起的方式?在我看来,curses只能在STDOUT上运行

curses perl telnet

8
推荐指数
2
解决办法
3875
查看次数

HTTP服务器如何接受Telnet

据我所知,Telnet是一种协议,与HTTP一样多.我有这样的想法,即在建立初始TCP连接之后,Telnet客户端会将一些特定于telnet的代码发送到另一端的服务器,在这种情况下是HTTP服务器.但由于HTTP服务器不了解Telnet特定代码,它应该抛出错误或丢弃连接等.但实际上,如果我们输入正确的HTTP标头并发送它们,我们可以telnet到HTTP服务器并获取页面.怎么会这样?维基百科条目真的没有帮助我理解这个具体点.(http://en.wikipedia.org/wiki/Telnet#Telnet_data)

telnet

8
推荐指数
2
解决办法
4954
查看次数

无法使用telnet localhost 5554连接Android模拟器

我无法使用该命令telnet localhost 5554连接Android模拟器.总是得到这个错误:

连接到localhost ...无法打开与主机的连接,在端口5554上:连接失败

我甚至将所有端口设置为允许Windows防火墙中的入站和出站规则中的连接.

我正在运行Windows 7.

port android firewall telnet android-emulator

8
推荐指数
2
解决办法
2万
查看次数

期望脚本自动telnet登录

我一直在尝试创建一个期望脚本,通过telnet自动登录我的设备

如果expect命令没有多种可能性,则脚本工作正常,登录到设备.

#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]

spawn telnet $ip $port
expect "'^]'." sleep .1;
send "\r";
sleep .1;
expect   "login:"
send "$user\r"
expect "Password:"
send "$password\r";
interact
Run Code Online (Sandbox Code Playgroud)

上面的脚本工作正常,并在我传递正确的参数时成功登录.但是,一旦我向expect命令添加了额外的分支(用于错误处理),脚本就会在提示符下卡住.login:一段时间后它会打印脚本错误 任何帮助?下面的错误脚本.

#!/usr/bin/expect
set timeout 20
set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set password [lindex $argv 3]

spawn telnet $ip $port …
Run Code Online (Sandbox Code Playgroud)

telnet expect

8
推荐指数
1
解决办法
4万
查看次数

如何使用命令提示符telnet谷歌?

这是我试过的

telnet www.google.com 80

Get   HTTP/1.1  Host:www.google.com 
Run Code Online (Sandbox Code Playgroud)

这是我收到的东西

HTTP/1.0 400 Bad Request
Content-Type: text/html; charset=UTF-8
Content-Length: 925
Date: Sat, 24 Nov 2012 19:37:42 GMT
Server: GFE/2.0
Run Code Online (Sandbox Code Playgroud)

我该如何工作?我尝试使用telnet访问www.google.com

telnet

8
推荐指数
2
解决办法
5万
查看次数

Telnet与错误请求400

看看以下帖子:

如何使用命令提示符telnet谷歌?

我尝试过同样的事情,但不断收到错误请求!(400!)我正在使用Windows 8 PRO机器.我只是想尝试一些使用Telnet的东西,但只要我不断得到这个400错误,我就无法真正实现!

我所做的就是以下内容:

o www.google.com 80 (PRESSING ENTER TWICE!!!)
GET / HTTP/1.1 (ENTER)
Host: www.google.com (PRESSING ENTER TWICE!!!)
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏!

错误的请求!

telnet

8
推荐指数
1
解决办法
2万
查看次数

如何渲染远程ncurses控制台?

我想写一个远程控制台,像telnet服务器一样工作.用户可以使用telnet登录服务器,然后编写一些命令来完成一些工作.

一个很好的例子是路由器操作系统的控制台.我现在困惑的是,我可以接受用户的输入,做一些然后打印一些文本,但我想使用ncurses使控制台具有更多功能(例如"cmd auto-complete",语法颜色...... ),那我该怎么办呢?因为控制台在用户端,如果服务器调用ncurses API,它只会改变服务器上的东西......

也许这是一个愚蠢的问题,但我真的是新手.任何建议表示赞赏.

console networking telnet ncurses

8
推荐指数
1
解决办法
4530
查看次数

Indy 10:未声明的标识符'TIdBytes'

对不起,如果我的问题很愚蠢!

我正在使用Delphi XE4,现在我正在努力IdTelnet.但我遇到了OnDataAvailable事件的问题.看看这张图:

在此输入图像描述

所以我无法使用OnDataAvailableEvent.

这是因为Delphi XE4吗?我该如何解决?

谢谢

delphi telnet indy indy10 delphi-xe4

8
推荐指数
1
解决办法
1万
查看次数

Telnet获取空输出并且没有登录/密码

我尝试编写Swift片段来向Telnet发送命令,但我需要先登录.

在OSX上我生成了一个Telnet服务:launchctl load -F /System/Library/LaunchDaemons/telnet.plist.之后我能够从其他计算机连接到IP:XXX.XXX.X.XXX端口23.

例如,从Windows 7:

telnet XXX.XXX.X.XXX 23
.....
Darwin/BSD (fess.local) (ttys009)

login: snaggs
Password:xxxxxx

snaggs:~ lur$
Run Code Online (Sandbox Code Playgroud)

在命令行中,Telnet要求我输入用户名和密码.之后我可以运行任何Linux命令.到现在为止还挺好.

我为Android编写了Telnet模块,因此OSX Telnet服务正常工作.这意味着我看到login:password:输出所以我能够处理它.

现在我坚持使用iOS Swift,我用Google搜索并找到了非常好的解决方案,应该适用于我的情况:

所以我写了我的家庭作品:

class TelnetClient : NSObject, NSStreamDelegate{

    private var inputStream: NSInputStream!
    private var outputStream: NSOutputStream!


func initNetworkCommunication(){
        let host : CFString = "XXX.XXX.X.XXX"
        let port : UInt32 = 23
        var readstream : Unmanaged<CFReadStream>?
        var writestream : Unmanaged<CFWriteStream>?

        CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &readstream, …
Run Code Online (Sandbox Code Playgroud)

telnet ios swift

8
推荐指数
1
解决办法
475
查看次数