标签: telnet

netstat 说 443 已打开,但我无法使用 telnet 连接到它。为什么?

我已经构建了一个自托管的 wcf 服务器,使用wsHttpBinding. 我正在运行 Win 2003 服务器 R2 SP2。

如果我将其配置为侦听http://localhost:443/MyService,则一切正常。我可以连接到http://localhost:443/MyServiceInternet Explorer,但收到标准的“错误请求”消息

现在,如果我尝试切换到 HTTPS,我会看到一个奇怪的现象。

这是我所做的:

  1. 我已经改变了我的 wcf 配置文件从http://localhosthttps://localhost和从Security=NoneSecurity=Transport(如许多 wcf 教程中所述)
  2. 我已经像这样注册了我的 HTTP 端口:

    httpcfg delete ssl -i 0.0.0.0:443
    
    httpcfg set ssl -i 0.0.0.0:443 -h ea2e450ef9d4...
    
    Run Code Online (Sandbox Code Playgroud)

请注意,我使用的证书是“真实证书”(即由受信任的 CA 颁发,即 Comodo)。服务器响应证书中提到的 NS 上的 ping。

现在,以下将超时:

Microsoft Telnet> open localhost 443
Run Code Online (Sandbox Code Playgroud)

这是来自netstat(Pid '4' 是 'System' 进程)的输出:

netstat -nao

  Proto  Local Adress         Remote Adress          State           Pid
  TCP    0.0.0.0:443          0.0.0.0:0 …
Run Code Online (Sandbox Code Playgroud)

ssh wcf tcp telnet windows-server-2003

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

POSIX套接字:如何检测通过Telnet发送的Ctrl-C?

简短问题
在服务器端处理通过Telnet发送的Ctrl-C事件的正确方法是什么?

长问题
在套接字上调用recv()之后,我想适当地处理一些情况.其中之一是在收到Ctrl-C时返回某个错误代码.检测到这种情况的正确方法是什么?以下工作,但它似乎不正确:

size_t recv_count;
static char ctrl_c[5] = {0xff, 0xf4, 0xff, 0xfd, 0x06};

recv_count = recv(socket, buffer, buffer_size, 0);

if (recv_count == sizeof(ctrl_c) &&
    memcmp(buffer, ctrl_c, sizeof(ctrl_c) == 0)
{
    return CTRL_C_RECEIVED;
}
Run Code Online (Sandbox Code Playgroud)

我在这个 UNIX Socket FAQ 的旁注中找到了对Ctrl-C的评论:

[...](顺便说一下,带外通常也用于ctrl-C).

据我所知,接收带外数据是使用recv()完成的,并将某个标志作为最后一个参数.但是,当我在上面的代码中使用recv()等待数据时,我无法同时读取带外数据.除此之外,我正在使用recv()获得一些没有oob-flag的东西.

c sockets terminal copy-paste telnet

5
推荐指数
1
解决办法
1641
查看次数

解析ANSI转义码?

我正在用 C# 构建一个 telnet 应用程序(用于在老式 BBS 系统上编写门游戏脚本,例如 Wildcat)并且似乎无法为 ANSI 转义码(例如光标移动、着色等)构建一个工作解析器 - 几乎所有系统我' ve 测试发送无视任何“标准”的未定义序列。关于这个问题的资源似乎也很少,维基百科有我迄今为止找到的最深入的列表,但即使他们说它不完整 - 而我遇到的大多数其他网站只是复制/粘贴维基百科的文章。

我的问题:那里有图书馆吗?如果没有,一些解析代码/正则表达式怎么样?至少,一些适当的文档对于诸如此类的事情ESC[!_会非常有帮助。

我真的觉得我正在重新发明轮子,尤其是看到 Telnet 或多或少相当于互联网的轮子(至少在年龄方面;)

编辑:添加了一个奇怪的例子:

00000075h: 1B 5B 73 1B 5B 32 35 35 42 1B 5B 32 35 35 43 08 ; .[s.[255B.[255C.
00000085h: 5F 1B 5B 36 6E 1B 5B 75 1B 5B 21 5F 02 02 3F 48 ; _.[6n.[u.[!_..?H
00000095h: 54 4D 4C 3F 1B 5B 30 6D 5F 1B 5B 32 4A 1B 5B …
Run Code Online (Sandbox Code Playgroud)

c# parsing telnet ansi-escape

5
推荐指数
1
解决办法
4986
查看次数

Ruby行编辑telnet服务器

我在Ruby中实现了一个小的telnet服务器.我目前面临的问题是我想添加readline支持,以便我可以使用tab-completion和命令行历史记录支持.我查看了Readline库,但似乎它只能通过stdin工作.有没有办法在Ruby中这样做(我注意到Python的解决方案)?

ruby sockets telnet libreadline

5
推荐指数
1
解决办法
651
查看次数

在 PHP 中正确和快速的 TELNET 方法。套接字或卷曲

PHP 中几乎所有 TELNET 实现的示例都使用套接字 ( fsockopen )。这对我不起作用,因为它花费了无法接受的时间(约 60 秒)。

我曾为其他目的尝试过fsockopen,但发现它与 cURL 相比速度较慢。

问题 1:为什么套接字这么慢?

更新:我发现我们需要设置stream_set_timeout函数,我们可以控制socket的执行时间。我很好奇如何设置正确的超时或如何在收到响应后使其“停止等待”。


我无法用 cURL 实现同样的事情。我应该把需要发送到 telnet 的命令放在哪里?是CURLOPT_CUSTOMREQUEST正确的选择吗?我正在做这样的事情:

class TELNETcURL{

    public $errno;
    public $errstr;
    private $curl_handle;
    private $curl_options = array(
        CURLOPT_URL => "telnet://XXX.XXX.XXX.XXX:<port>",
        CURLOPT_TIMEOUT => 40,
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_HEADER => FALSE,
        CURLOPT_PROTOCOLS => CURLPROTO_TELNET
    );

    function __construct(){
        $this->curl_handle = curl_init();
        curl_setopt_array($this->curl_handle, $this->curl_options);
    }

    public function exec_cmd($query) {
        curl_setopt($this->curl_handle, CURLOPT_CUSTOMREQUEST, $query."\r\n");
        $output = curl_exec($this->curl_handle);
        return $output;
    }

    function __destruct(){
        curl_close($this->curl_handle); …
Run Code Online (Sandbox Code Playgroud)

php sockets curl telnet

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

不使用浏览器发送 HTTP 数据包?

我想我有两个问题:

  1. 我试图在不使用网络浏览器的情况下向网络服务器发送 HTTP 请求。我已经阅读了使用 Telnet 执行此操作的最常用方法,但我想知道其他方法。

  2. 另外,我认为我的 telnet 有问题。我激活了 telnet 客户端,然后在命令窗口中输入 telnet,然后输入“打开 IP 地址 80”,它会永远显示“连接到 IP 地址......”,但永远不会让我过去。大家有遇到过这个问题吗?另外,我在 Wireshark 上注意到 TCP 握手正确发生。

谢谢,麻烦您了!

http telnet

5
推荐指数
0
解决办法
4415
查看次数

看不到我在telnet中输入的内容

我在寡妇7中启用了telnet,当我输入CMD时:telnet www.example.com 80屏幕清除然后我看不到我在键入的内容.虽然我可以跟踪每个键入的字符移动的光标.我看到这个链接最相关.但是,当我键入GET/HTTP/1.0时没有任何反应,当我按下ctrl +]时它不接受GET/HTTP/1.0.我该怎么做才能看到这个页面?

cmd telnet windows-7

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

调用表达式:找不到接受参数 /s 的位置参数

我有一个包含一行的 .ps1 脚本

Invoke-Expression -Command "C:\Builds\$BuildName /s /v`"/l*v c:\build_install.txt /qn`""<br/>
Run Code Online (Sandbox Code Playgroud)

这是执行产品的静默安装。

现在,如果我尝试通过 ssh 从 Linux 机器运行此命令,则会出现以下错误:

Invoke-Expression : A positional parameter cannot be found that accepts argument '/s'.
At line:1 char:1
+ Invoke-Expression C:\NWTBuilds\Setup-NimbleNWT-x64.2.0.4.117.exe /s /v`/l*v c:\n ...
+ CategoryInfo          : InvalidArgument: (:) [Invoke-Expression], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeExpressionCommand
Run Code Online (Sandbox Code Playgroud)

你对此有什么建议吗?我需要提供任何凭据吗?

所以我也尝试了以下选项:

  1. 通过 ssh 或 telnet 发送命令 powershell.exe -Command ...
  2. 从 ssh 或 telnet 调用 powershell 脚本 powershell.exe -File C:\Sample.ps1

但是,如果我Sample.ps1从 Windows Powershell运行相同的程序,是否完成了静默安装?

ssh powershell installation telnet silent

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

无法从 Node.js 连接到 Telnet 服务器

我有一个嵌入在 C++ 应用程序中的 telnet 服务器,我可以使用 telnet 毫无问题地连接到它。

我想编写一个将连接到我的服务器的节点应用程序,我已经尝试过

var net = require('net');

var port = 6502
var host = '127.0.0.1'

var socket = net.connect(port,host, function() {
    console.log("Sending data");
    socket.write("hello\r\n")

    socket.on("data", function (data) {
        console.log("received data");
        console.log( data.toString() );
        socket.end();
    })
})

socket.on("error", function(err) {
    console.log("Error");
    console.log(err);
})
Run Code Online (Sandbox Code Playgroud)

不幸的是我得到的是这个

> node test.js
{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
Run Code Online (Sandbox Code Playgroud)

真正奇怪的是,如果我使用节点设置一个简单的回显服务器,一切正常。这是工作的回声服务器代码:

var net = require('net');

var server = net.createServer(function (socket) {
  socket.write('Echo server\r\n');
  socket.pipe(socket);
});

server.listen(6502, '127.0.0.1');
Run Code Online (Sandbox Code Playgroud)

从那我得到 …

networking telnet node.js

5
推荐指数
0
解决办法
3043
查看次数

无法使用 PHP shell_exec() 执行 telnet 命令

我正在尝试使用 telnet 和 php 进行邮件验证。整个过程在终端中很好,但是当我使用 php 时shell_exec(),它只能运行到 Telnet 连接命令。连接 telnet 后,其余的 telnet 特定命令将不再起作用。

是否有其他方法需要我们使用 php 执行 telnet?

更新:我正在尝试复制教程。

这是我的代码

public function mailtest(Request $request){
        //Taking input email
        $email = $request->input("email");
        $divide = explode("@", $email);
        //Find out the Domain
        $server = $divide[1];
        $response = shell_exec("nslookup -q=mx $server");
        //Response of the nslookup
        print_r($response);
        $mailServerList = explode(PHP_EOL, $response);
        $line = $mailServerList[4];

        $serverArr = preg_split('/\s+/', $line);
        $n = sizeof($serverArr);
        $mailServer = $serverArr[$n-1];
        //Printing out the mail server out of the …
Run Code Online (Sandbox Code Playgroud)

php networking telnet shell-exec email-validation

5
推荐指数
1
解决办法
3100
查看次数