telnet

์ •ํ˜œ์ธยท2024๋…„ 8์›” 8์ผ

๊ธฐ์ดˆ๊ณต๋ถ€

๋ชฉ๋ก ๋ณด๊ธฐ
18/18

๐Ÿ’จ telnet

โญ• ์ •์˜

๐Ÿ’ก ์›๊ฒฉ ์‹œ์Šคํ…œ์— ์ ‘์†ํ•˜์—ฌ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ

โ— ์ฃผ๋กœ ์›๊ฒฉ ์„œ๋ฒ„ ๊ด€๋ฆฌ๋‚˜ ๋„คํŠธ์›Œํฌ ๋””๋ฐ”์ด์Šค ์„ค์ •์— ์‚ฌ์šฉ

โ— ๋ชฉ์  : ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

โ— ๊ธฐ๋Šฅ :

  • ์›๊ฒฉ ์ ‘์†: ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋‚˜ ์žฅ๋น„์— ์ ‘์†ํ•˜์—ฌ ์ง์ ‘ ๋ช…๋ น์„ ์‹คํ–‰ ๊ฐ€๋Šฅ
  • ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์„ธ์…˜: ์›๊ฒฉ ์‹œ์Šคํ…œ๊ณผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
  • ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ์ง€์›: ๋‹ค์–‘ํ•œ ์šด์˜ ์ฒด์ œ์™€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โญ• ๋™์ž‘ ์›๋ฆฌ

  1. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„: Telnet ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ , Telnet ์„œ๋ฒ„๋Š” ์›๊ฒฉ ์‹œ์Šคํ…œ์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ์ฒ˜
  2. ์—ฐ๊ฒฐ ์„ค์ •: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ์š”์ฒญ
  3. ๋ช…๋ น ์ „์†ก: ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜๋ฉด, ํด๋ผ์ด์–ธํŠธ๋Š” ์›๊ฒฉ ์„œ๋ฒ„์— ๋ช…๋ น์„ ์ „์†กํ•˜๊ณ , ์„œ๋ฒ„๋Š” ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜
  4. ์„ธ์…˜ ์ข…๋ฃŒ: ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒ

โญ• ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

telnet <์„œ๋ฒ„ IP ์ฃผ์†Œ> <ํฌํŠธ ๋ฒˆํ˜ธ>

//ex. telnet 127.0.0.1 2024

โ— ํ•œ๊ณ„ : windows์—์„œ๋Š” ๋ฒ„ํผ ๋‹จ์œ„๋กœ ์ž…๋ ฅ์„ ๋ฐ›์•„, ํ•œ ๊ธ€์ž์”ฉ ๋ฌด์กฐ๊ฑด ์„œ๋ฒ„์— ๋ฐ”๋กœ ์ „์†กํ•ด๋ฒ„๋ฆผ

โ†’ ์„œ๋ฒ„์—์„œ ๊ธ€์ž ํ•˜๋‚˜์”ฉ์„ ๋ฐ›์•„ ๋ฌธ์žฅ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ ค๋ฉด buffer์— ์ €์žฅํ•ด๋‘์–ด์•ผ ํ•จ

(mac์—์„œ๋Š” ์ •์ƒ ๋™์ž‘)

  • ์‚ฌ์šฉ ์˜ˆ์‹œ js ์ฝ”๋“œ
const net = require("node:net");

const server = net.createServer((socket) => {
  const clientIPAdress = socket.remoteAddress;
  const clientPort = socket.remotePort;
  console.log(
    `ํด๋ผ์ด์–ธํŠธ IP ์ฃผ์†Œ : ${clientIPAdress}, ํด๋ผ์ด์–ธํŠธ ํฌํŠธ ๋ฒˆํ˜ธ : ${clientPort}`
  );

  let buffer = "";

  socket.on("data", (data) => {
    const char = data.toString();

    if (!/^\r?\n$/.test(char)) {
      buffer += char;
    }

    if (/^\r?\n$/.test(char) && buffer.length >= 4) {
      const content = buffer.slice(0, 1024);
      socket.write(content, () => {
        console.log("์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด: ", content);
        socket.end();
      });
      buffer = "";
    }
  });

  socket.on("end", () => {
    console.log("์„œ๋ฒ„ ์—ฐ๊ฒฐ ์ข…๋ฃŒ");
  });

  socket.on("error", () => {
    console.log("socket error");
  });
});

server.on("error", (err) => {
  console.error("server error", err);
});

server.listen(
  {
    host: "0.0.0.0",
    port: 2024
  },
  () => {
    console.log("์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹œ์ž‘");
  }
);

0๊ฐœ์˜ ๋Œ“๊ธ€