telnet深度解析

问问题描述

telnet深度解析,求快速回复,真的等不了了!

答精选答案

最佳答案

下面的debug信息来自与/tmp/telenet.debug文件的一部分。

是客户端按下字母e后发生的四个阶段。这篇主要分析第一阶段和第二阶段。

也就是telrcv函数的主要的功能。

td: netread 1 chars

nd: 65 e

td: ptyflush 1 chars

pd: 65 e

td: ptyread 2 chars

pd: 0065.e

td: netflush 1 chars

下面的是telnetd.c里面最主要的一个函数,其中里面的for循环也是理解telnetd的工作机制最主要的部分。

int

telnetd_run (void)

{

...

for (;;)

{

fd_set ibits, obits, xbits;

register int c;

if (net_input_level () < 0 && pty_input_level () < 0)

break;

FD_ZERO (&ibits);

FD_ZERO (&obits);

FD_ZERO (&xbits);

if (net_output_level () || pty_input_level () > 0)

FD_SET (net, &obits);

else

FD_SET (pty, &ibits);

if (pty_output_level () || net_input_level () > 0)

FD_SET (pty, &obits);

else

FD_SET (net, &ibits);

if (!SYNCHing)

FD_SET (net, &xbits);

if ((c = select (nfd, &ibits, &obits, &xbits, NULL)) <= 0)

{

if (c == -1 && errno == EINTR)

continue;

sleep (5);

continue;

}

if (FD_ISSET (net, &xbits))

SYNCHing = 1;

if (FD_ISSET (net, &ibits))

{

net_read (); 这里是第一阶段执行的函数

}

if (FD_ISSET (pty, &ibits))

{

if (pty_read () <= 0)

break;

c = pty_get_char (1);

#if defined TIOCPKT_IOCTL

if (c & TIOCPKT_IOCTL)

{

pty_get_char (0);

copy_termbuf ();

localstat ();

}

#endif

if (c & TIOCPKT_FLUSHWRITE)

{

static char flushdata[] = { IAC, DM };

pty_get_char (0);

netclear ();

net_output_datalen (flushdata, sizeof (flushdata));

set_neturg ();

DEBUG (debug_options, 1, printoption (

"td: send IAC

答其他回答(1条)

  • Telnet是一种用于远程连接和交互式通信的网络协议,允许用户通过网络远程登录和执行命令。它基于客户端-服务器架构,使用端口23进行通信,通过TCP/IP协议传输数据。在telnet会话中,用户可以在远程主机上执行命令、查看文件、编辑文本等。然而由于安全性方面的弱点,telnet已经逐渐被SSH协议所取代。Telnet协议以明文传输数据,容易受到窃听和数据篡改的风险。

本文来自作者[offer帝]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/changshijingxuan/202609/1140472.html

赞 (0)

发表回复

本站作者后才能评论

评论列表(4条)

  • offer帝
    offer帝 2026年09月30日

    我是公众科技网的签约作者“offer帝”!

  • offer帝
    offer帝 2026年09月30日

    希望本篇文章《telnet深度解析》能对你有所帮助!

  • offer帝
    offer帝 2026年09月30日

    本站[公众科技网]内容主要涵盖:教育咨询,知识百科

  • offer帝
    offer帝 2026年09月30日

    本文概览:下面的debug信息来自与/tmp/telenet.debug文件的一部分。是客户端按下字母e后发生的四个阶段。这篇主要分析第一阶段和第二阶段。也就是telrcv函数的主要的功能。td: netread 1 charsnd: 65 etd: ptyflush 1 charspd: 65 etd: ptyread 2 charspd: 0065.etd: netflush 1 chars下面的是telnetd.c里面最主要的一个函数,其中里面的for循环也是理解telnetd的工作机制最主要的部分。intt

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们