bbs.windcity.net:23

Connection Banner:

bbs.windcity.net:23

Encoding

  • Effective encoding: big5

  • Override: big5 (from bbslist.txt)

  • Scanner detected: big5

Telnet Fingerprint

fe8c5877d252f27a…

This fingerprint is unique to this server.

Options offered by server: ECHO, SGA

Options requested from client: BINARY, GMCP, MSDP, MSSP

Data source: fe8c5877d252f27a/52575f59752921ca.json

The complete JSON record collected during the scan, including Telnet negotiation results and banner data.

{
  "server-probe": {
    "fingerprint": "fe8c5877d252f27a",
    "fingerprint-data": {
      "offered-options": [
        "ECHO",
        "SGA"
      ],
      "probed-protocol": "server",
      "refused-options": [
        "AARDWOLF",
        "ATCP",
        "BINARY",
        "CHARSET",
        "COM_PORT",
        "EOR",
        "GMCP",
        "MSDP",
        "MSP",
        "MSSP",
        "MXP",
        "STATUS",
        "ZMP"
      ],
      "requested-options": [
        "BINARY",
        "GMCP",
        "MSDP",
        "MSSP"
      ],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "\r\u8acb\u8f38\u5165\u4ee3\u865f\uff0c\u6216\u4ee5[guest]\u53c3\u89c0\uff0c\u4ee5[new]\u8a3b\u518a\uff1a\u001b[7m             \u001b[m\n\r\u9019\u88e1\u6c92\u6709\u9019\u500b\u4eba\u5566\uff01\u001b[21;43H",
      "banner_before_return": "\u3010\u66f8\u9f4b\u8ed2\u3011\u25ce \u98a8\u57ce\u8cc7\u8a0a\u7db2 \u25ce(bbs.windcity.net)\r\n  \u8abf\u5e45(211.21.191.123)  \u7cfb\u7d71\u8ca0\u8377  1.12 1.08 1.03  \r\n1\u001b[H\u001b[J\u001b[3;1H\u001b[1;37mWelcome to ...\u001b[6;1H\u001b[m\u001b[1;36m \u001b[;36;40m\u25e2\u2586\u2586\u2588\u2588\u2586\u2585\u2585\u001b[1m  \u25e2\u2584\u2584\u2584\u001b[46m\u25e3 \u001b[;36;46m \u001b[40m\u2583\u2583\u2583\u001b[1m  \u001b[;36;40m\u2584\u2588\u2588\u2584\u001b[1m \u001b[;36;40m\u25e2\u001b[46m     \u001b[m\n\r\u001b[36m\u2584\u2584\u2584\u2588\u2588\u2585\u001b[46m  \u001b[1m  \u001b[;36;46m \u001b[40m\u25e3\u001b[1;46m\u2588\u2588\u2588\u2588\u001b[40m\u25e4\u001b[;36;40m\u25e5\u001b[46m      \u001b[40m\u25e2\u001b[46m        \u001b[1;40m \u001b[;36;46m        \u001b[m\n\r\u001b[30;46m\u2586\u2586\u2586     \u2586      \u001b[40m  \u001b[1;36m \u25e5\u2588\u2588\u001b[46m\u25e3  \u001b[;36;40m\u25e4\u001b[30m   \u001b[36m\u25e2\u001b[46m      \u001b[40m\u25e3\u001b[30m  \u001b[36;46m    \u001b[m\n\r\u001b[30;46m\u2583\u2583\u2583     \u2584\u2582\u001b[36;40m\u25e4\u001b[30m\u25e4\u001b[1;36m\u2588\u2588\u2588\u25e4\u001b[;30;40m \u001b[36m\u25e5\u001b[46m         \u001b[40m\u2585\u001b[46m  \u001b[40m\u2585\u001b[46m  \u001b[30;40m  \u001b[36;46m  \u001b[1m\u25e2\u001b[;30;40m     \u001b[1;36;46m\u2588\u001b[40m\u2588\u25e3\u001b[;30;40m \u001b[1;36m\u2588\u2588\u25e3\u001b[;30;40m \u001b[1;36m\u25e2\u2588\u2588\u001b[m\n\r\u001b[30m \u001b[46m\u2582\u2582\u2582    \u2582\u2582\u2582\u001b[40m   \u001b[36;46m   \u001b[1;40m \u001b[;36;46m      \u001b[1;40m  \u001b[;36;46m    \u001b[1;40m \u001b[;36;46m  \u001b[1;40m \u001b[;36;40m \u001b[46m  \u001b[1;40m  \u001b[;36;46m  \u001b[1m\u25e2\u001b[40m\u2588\u2588\u2588\u25e3 \u001b[46m\u2588\u2587\u2588\u001b[40m \u001b[46m\u2588\u2587\u2588\u001b[40m \u2588\ufffd\u001b[46mi\u2587\u001b[m\n\r\u001b[1;36;46m         \u25e2\u001b[40m\u2588\u2588\u2588\u25e3 \u001b[;36;46m   \u001b[1;40m \u001b[;36;40m\u2586\u2586\u2586\u25e3\u001b[46m    \u001b[1;40m \u001b[;36;40m\u25e5\u001b[46m     \u001b[1m \u001b[40m\u25e4\u2588\u2588\u2588\u2588\u2588 \u001b[46m\u2588\u2587\u001b[40m\u25e4 \u001b[46m\u2588\u2587\u001b[40m\u25e4 \u001b[46m\u2587\u001b[40m\u2588\u25e4\u001b[m\n\r\u001b[1;36m \u001b[;36;40m \u25e2\u2585\u2585\ufffd\u001b[1mf\u2585\u2585\u25e3\u001b[;36;40m   \u001b[46m    \u001b[40m   \u001b[46m   \u001b[40m   \u001b[46m    \u001b[40m  \u2585\u001b[46m   \u001b[1m \u001b[40m\u2585\u25e3\u001b[;36;40m \u001b[1m\u2588\u2588\u001b[m\n\r\u001b[36m \u001b[46m    \u001b[1;40m\u2583\u2583\u2583\u2583\u2588\u2588\u001b[;36;40m  \u001b[46m    \u001b[40m \u258a\u001b[46m   \u001b[40m \u001b[46m\u2589    \u001b[40m\u25e2\u001b[46m   \u001b[1m\u25e2\u001b[40m\u2588\u2588\u001b[;36;40m  \u001b[1m\u2588\u2588\u001b[m\n\r\u001b[36m \u001b[46m  \u001b[1m\u25e2\u001b[40m\u2585\u2585\u2585\u2585\u2588\u2588\u001b[;36;40m  \u001b[46m  \u001b[40m\u25e4   \u001b[46m   \u001b[1;40m   \u001b[;36;46m    \u001b[1;40m    \u001b[;36;40m \u001b[1m\u2588      \u25e5\u2588\u001b[m\u001b[m\u001b[17;1H\u001b[31m\u6b61\u001b[32m\u8fce\u001b[33m\u849e\u001b[34m\u81e8\u001b[37m\u25ce\u66f8\u9f4b\u8ed2BBS\u25ce\u76ee\u524d\u7ad9\u4e0a\u6709[\u001b[33m1\u001b[37m]\u4eba\u001b[m\u001b[21;1H\u8acb\u8f38\u5165\u4ee3\u865f\uff0c\u6216\u4ee5[guest]\u53c3\u89c0\uff0c\u4ee5[new]\u8a3b\u518a\uff1a\u001b[7m             \u001b[m\u001b[21;43H",
      "encoding": "big5",
      "option_states": {
        "server_offered": {
          "ECHO": true,
          "SGA": true
        },
        "server_requested": {
          "BINARY": true
        }
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.5035996437072754,
        "total": 5.219696521759033
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-02-09T19:30:45.071189+00:00",
      "host": "bbs.windcity.net",
      "ip": "211.21.191.123",
      "port": 23
    }
  ]
}

Connection Log

Debug-level log of the Telnet negotiation session, showing each IAC (Interpret As Command) exchange between client and server.

DEBUG client.py:863 Fingerprint client: host=bbs.windcity.net port=23
INFO client_base.py:174 Connected to <Peer 211.21.191.123 23>
DEBUG stream_writer.py:706 recv IAC WILL ECHO
DEBUG stream_writer.py:722 WILL ECHO unsolicited
DEBUG stream_writer.py:1897 handle_will(ECHO)
DEBUG stream_writer.py:3167 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:947 send IAC DO ECHO
DEBUG stream_writer.py:3167 remote_option[ECHO] = True
DEBUG stream_writer.py:3167 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:706 recv IAC WILL SGA
DEBUG stream_writer.py:722 WILL SGA unsolicited
DEBUG stream_writer.py:1897 handle_will(SGA)
DEBUG stream_writer.py:3167 pending_option[DO + SGA] = True
DEBUG stream_writer.py:947 send IAC DO SGA
DEBUG stream_writer.py:3167 remote_option[SGA] = True
DEBUG stream_writer.py:3167 pending_option[DO + SGA] = False
DEBUG stream_writer.py:706 recv IAC DO BINARY
DEBUG stream_writer.py:1767 handle_do(BINARY)
DEBUG stream_writer.py:3167 pending_option[WILL + BINARY] = True
DEBUG stream_writer.py:947 send IAC WILL BINARY
DEBUG stream_writer.py:3167 local_option[BINARY] = True
DEBUG stream_writer.py:3167 pending_option[WILL + BINARY] = False
DEBUG client_base.py:460 negotiation complete after 2.00s.
DEBUG stream_writer.py:3167 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:947 send IAC DO BINARY
DEBUG stream_writer.py:3167 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:947 send IAC DO STATUS
DEBUG stream_writer.py:3167 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:947 send IAC DO CHARSET
DEBUG stream_writer.py:3167 pending_option[DO + EOR] = True
DEBUG stream_writer.py:947 send IAC DO EOR
DEBUG stream_writer.py:3167 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:947 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:3167 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:947 send IAC DO GMCP
DEBUG stream_writer.py:3167 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:947 send IAC DO MSDP
DEBUG stream_writer.py:3167 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:947 send IAC DO MSSP
DEBUG stream_writer.py:3167 pending_option[DO + MSP] = True
DEBUG stream_writer.py:947 send IAC DO MSP
DEBUG stream_writer.py:3167 pending_option[DO + MXP] = True
DEBUG stream_writer.py:947 send IAC DO MXP
DEBUG stream_writer.py:3167 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:947 send IAC DO ZMP
DEBUG stream_writer.py:3167 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:947 send IAC DO AARDWOLF
DEBUG stream_writer.py:3167 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:947 send IAC DO ATCP
DEBUG stream_writer.py:706 recv IAC DO b'\x1b'
DEBUG stream_writer.py:1767 handle_do(b'\x1b')
DEBUG stream_writer.py:1845 DO b'\x1b' not supported.
DEBUG stream_writer.py:3167 local_option[b'\x1b'] = False
DEBUG stream_writer.py:947 send IAC WONT b'\x1b'
DEBUG stream_writer.py:706 recv IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:1767 handle_do(COM_PORT_OPTION)
DEBUG stream_writer.py:1845 DO COM_PORT_OPTION not supported.
DEBUG stream_writer.py:3167 local_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:947 send IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:706 recv IAC DO GMCP
DEBUG stream_writer.py:1767 handle_do(GMCP)
DEBUG stream_writer.py:3167 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:947 send IAC WILL GMCP
DEBUG stream_writer.py:3167 local_option[GMCP] = True
DEBUG stream_writer.py:3167 pending_option[WILL + GMCP] = False
DEBUG stream_writer.py:706 recv IAC DO MSDP
DEBUG stream_writer.py:1767 handle_do(MSDP)
DEBUG stream_writer.py:3167 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:947 send IAC WILL MSDP
DEBUG stream_writer.py:3167 local_option[MSDP] = True
DEBUG stream_writer.py:3167 pending_option[WILL + MSDP] = False
DEBUG stream_writer.py:706 recv IAC DO MSSP
DEBUG stream_writer.py:1767 handle_do(MSSP)
DEBUG stream_writer.py:3167 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:947 send IAC WILL MSSP
DEBUG stream_writer.py:3167 local_option[MSSP] = True
DEBUG stream_writer.py:3167 pending_option[WILL + MSSP] = False
INFO fingerprinting.py:737 new server fingerprint fe8c5877d252f27a
INFO client_base.py:105 Connection closed to <Peer 211.21.191.123 23>

Generated by telnetlib3-fingerprint

telnetlib3-fingerprint --loglevel=debug bbs.windcity.net 23