50.38.40.79 (x-bit.org)

x-bit.org:1336

Connection Banner:

Synchronet BBS for Linux Version 3.21 Telnet connection from: 143.198.61.53 Resolving hostname... _  Synchronet BBS for Linux Version 3.21 Copyright 2026 Rob Swindell ܱܲ -o) /\\\\ _\\_V CLIENT CONN: Telnet ADDR: modem.xyz [143.198.61.53] TERM: 80x24 CP437 / ANSI SERVER NAME: unix-bit ADDR: x-bit.org NODE: 1 (of 7) - Pop!_OS 22.04 LTS x86_64 TIME: Thu Apr 09 2026 05:31 pm UTC-7:00 ADMN: xbit If you are a new user to the system, type "New" now. Otherwise, enter your user name or number now. Enter User Name or 'New' or 'Guest' Login:

Server URLs

Server Location: 🇺🇸 United States (GeoIP)

Listing

  • BBS Name: X-Bit BBS (from listing)

  • Sysop: Xbit Ops

  • Listed Location: Beaverton, OR, USA

BBS Software

Detected: Synchronet

Encoding

  • Effective encoding: utf-8

  • Override: utf-8 (from bbslist.txt)

  • Scanner detected: utf-8

Telnet Fingerprint

cdf52165b1ba8b95

This fingerprint is shared by 375 other servers.

Options offered by server: AARDWOLF, ATCP, ECHO, GMCP, MCCP2, MCCP3, MSDP, MSP, MSSP, MXP, SGA, ZMP

Options requested from client: NAWS, NEW_ENVIRON, TSPEED, TTYPE

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

Show JSON
{
  "server-probe": {
    "fingerprint": "cdf52165b1ba8b95",
    "fingerprint-data": {
      "offered-options": [
        "AARDWOLF",
        "ATCP",
        "ECHO",
        "GMCP",
        "MCCP2",
        "MCCP3",
        "MSDP",
        "MSP",
        "MSSP",
        "MXP",
        "SGA",
        "ZMP"
      ],
      "probed-protocol": "server",
      "refused-options": [
        "BINARY",
        "CHARSET",
        "COM_PORT",
        "EOR",
        "STATUS"
      ],
      "requested-options": [
        "NAWS",
        "NEW_ENVIRON",
        "TSPEED",
        "TTYPE"
      ],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "\u001b[37;40m\u001b[0m\r\n\u001b[1;30m\u0731\u001b[31m\u0732\udcb1\udcdf\udcdb\udcdd\u001b[30m\udcb1\u001b[0m\r\n\u001b[1;30m\udcb2\u001b[31m\udcdf\udcdb\udcdf\udcdf\udcdb\udcdf\udcdf\udcdd\u001b[30m\udcdd\u001b[0m    \u001b[1m\udcdb\u001b[32m\udcdb\u001b[30m\udcde\udcdd\u001b[32;42m\udcdf\u001b[0;32m\udcdb \u001b[1;37m\udcdb\u001b[32m\udcdb\u001b[42m\udcdf\u001b[0;32m\udcdb\udcdb\udcdc \u001b[1;37m\udcdb\u001b[32m\udcdb \u001b[37;42m\udcdb\u001b[32;40m\udcdb\u001b[30m\udcde\udcdd\u001b[32;42m\udcdf\u001b[0;32m\udcdb\u001b[37m          \u001b[1m\udcdb\u001b[32m\udcdb\u001b[42m\udcdf\u001b[0;32m\udcdb\udcdb\udcdc \u001b[1;37m\udcdb\u001b[32m\udcdb \u001b[37m\udcdb\u001b[32;42m\udcdb\udcdf\u001b[0;32m\udcdb\u001b[37m\r\n\u001b[1;30m\udcde\u001b[31m\udcdc\udcdc\u001b[37;44m\udcdb\udcdf\u001b[31;40m\udcdc\u001b[37;44m\udcdb\udcdf\u001b[31;40m\udcde\u001b[0m     \u001b[1;32m\udcdb\u001b[0;32m\udcdb\u001b[1;30m\udcde\udcdd\u001b[0;32m\udcdb\udcdb \u001b[1m\udcdb\u001b[0;32m\udcdb  \udcdb\udcdb \u001b[1m\udcdb\u001b[0;32m\udcdb \u001b[1m\udcdf\u001b[42m\udcdc\u001b[0;32m\udcdc\udcdc\udcdb\udcdf\u001b[37m          \u001b[1;32m\udcdb\u001b[0;32m\udcdb\udcdc\udcdc\udcdb\udcdf \u001b[1m\udcdb\u001b[0;32m\udcdb  \u001b[1;42m\udcdd\u001b[0;32m\udcdb\u001b[37m      \u001b[1;33m-\u001b[37mo\u001b[30m)\u001b[0m\r\n \u001b[1;31m\udcde\udcdb\udcdb\udcdd\udcdf\udcdb\udcdb\udcdd\u001b[0m     \u001b[1;32;42m\udcdd\u001b[0;32m\udcdb  \udcdb\udcdb \u001b[1;42m\udcdd\u001b[0;32m\udcdb\u001b[1;30m\udcde\udcdd\u001b[0;32m\udcdb\udcdb \u001b[1;42m\udcdd\u001b[0;32m\udcdb \u001b[1;42m\udcdd\u001b[0;32m\udcdb\udcdf\udcdf\udcdb\udcdb  \u001b[1;37m\udcdb\u001b[32m\udcdb\u001b[42m\udcdf\u001b[0;32m\udcdb\u001b[1;30;42m\udcdc\u001b[40m\udcdb  \u001b[32;42m\udcdd\u001b[0;32m\udcdb\udcdf\udcdf\udcdb\udcdb \u001b[1;42m\udcdd\u001b[0;32m\udcdb  \udcdb\u001b[1;30;42m\udcde\u001b[0m      \u001b[1;30m/\\\\\u001b[0m\r\n  \u001b[1;31m\udcdb\udcdd\udcdf\udcdf\udcde\udcdd\u001b[0m      \u001b[32m\udcdf\udcdb\udcdb\udcdb\u001b[1;30;42m\udcdc\u001b[40m\udcdf \u001b[0;32m\udcdb\u001b[1;30;42m\udcdc\u001b[40m\udcde\udcdd\u001b[42m\udcdc\udcdb\u001b[0m \u001b[1;30;42m\udcdc\udcdb\u001b[0m \u001b[32m\udcdb\u001b[1;30;42m\udcdc\u001b[40m\udcde\udcdd\u001b[42m\udcdc\udcdb\u001b[0m          \u001b[32m\udcdb\udcdb\udcdb\udcdb\u001b[1;30;42m\udcdc\u001b[40m\udcdf \u001b[42m\udcdc\udcdb\u001b[0m  \u001b[1;30;42m\udcdc\u001b[40m\udcdb\u001b[0m     \u001b[1;33m_\u001b[30m\\\u001b[33m_\u001b[30mV\u001b[0m\r\n   \u001b[1;31m\udcdf\udcdc\udcdc\udcdb\u001b[0m\r\n\u001b[37;40m\r\n\u001b[1mCLIENT \u001b[0;37;40m\u001b[36mCONN: \u001b[1mTelnet\r\n\u001b[0;37;40m\u001b[1m       \u001b[0;37;40m\u001b[36mADDR: \u001b[1mmodem.xyz [143.198.61.53]\r\n\u001b[0;37;40m\u001b[1m       \u001b[0;37;40m\u001b[36mTERM: \u001b[1m80x24 CP437 / ANSI\r\n\u001b[0;37;40m\u001b[1mSERVER \u001b[0;37;40m\u001b[36mNAME: \u001b[1m\u001b[33munix-bit\r\n\u001b[0;37;40m\u001b[1m       \u001b[0;37;40m\u001b[36mADDR: \u001b[1mx-bit.org\r\n\u001b[0;37;40m\u001b[1m       \u001b[0;37;40m\u001b[36mNODE: \u001b[1m1 \u001b[0;37;40m\u001b[36m(of \u001b[1m7\u001b[0;37;40m\u001b[36m) - \u001b[1mPop!_OS 22.04 LTS x86_64\r\n\u001b[0;37;40m\u001b[1m       \u001b[0;37;40m\u001b[36mTIME: \u001b[1mThu Apr 09 2026 05:31 pm UTC-7:00\r\n\u001b[0;37;40m\u001b[1m       \u001b[0;37;40m\u001b[36mADMN: \u001b[1mxbit\r\n\r\n\u001b[34mIf you are a new user to the system, type \u001b[36m\"New\"\u001b[34m now.\r\nOtherwise, enter your user name or number now.\r\n\u001b[0m\r\n\u001b[37;40m\u001b[1m\u001b[36mEnter \u001b[37mUser Name\u001b[36m or '\u001b[33mNew\u001b[36m' or '\u001b[33mGuest\u001b[36m'\r\nLogin: \u001b[37m",
      "banner_before_return": "\r\nSynchronet BBS for Linux  Version 3.21\r\nTelnet connection from: 143.198.61.53\r\nResolving hostname...\r\n\r\n\u001b[s\u001b[0c\u001b[255B\u001b[255C\u001b[30;40m\b_\u001b[6n\u001b[u\u001b[!_\r\ufeff\u001b[6n\u001b[0m\u001b[2J\u001b[H\f\r\r      Synchronet BBS for Linux  Version 3.21  Copyright 2026 Rob Swindell\r\n",
      "dsr_replies": 2,
      "dsr_requests": 2,
      "encoding": "utf-8",
      "option_states": {
        "server_offered": {
          "AARDWOLF": true,
          "ATCP": true,
          "ECHO": true,
          "GMCP": true,
          "MCCP2": true,
          "MCCP3": true,
          "MSDP": true,
          "MSP": true,
          "MSSP": true,
          "MXP": true,
          "SGA": true,
          "ZMP": true
        },
        "server_requested": {
          "AARDWOLF": false,
          "ATCP": false,
          "GMCP": false,
          "MCCP2": false,
          "MCCP3": false,
          "MSDP": false,
          "MSP": false,
          "MSSP": false,
          "MXP": false,
          "NAWS": true,
          "NEW_ENVIRON": true,
          "SNDLOC": false,
          "TSPEED": true,
          "TTYPE": true,
          "ZMP": false
        }
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.50394606590271,
        "total": 13.442315101623535
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-04-05T19:21:45.534009+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 1336
    },
    {
      "connected": "2026-04-07T06:25:35.381461+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 1336
    },
    {
      "connected": "2026-04-10T00:31:20.850724+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 1336
    }
  ]
}

Connection Log

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

Generated by telnetlib3-fingerprint

telnetlib3-fingerprint --loglevel=debug x-bit.org 1336
Show Logfile
DEBUG client.py:1193 Fingerprint client: host=x-bit.org port=1336
INFO client_base.py:188 Connected to <Peer 50.38.40.79 1336>
DEBUG stream_writer.py:3384 pending_option[WILL + ZMP] = True
DEBUG stream_writer.py:1024 send IAC WILL ZMP
DEBUG stream_writer.py:3384 pending_option[WILL + AARDWOLF] = True
DEBUG stream_writer.py:1024 send IAC WILL AARDWOLF
DEBUG stream_writer.py:3384 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSDP
DEBUG stream_writer.py:3384 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:1024 send IAC WILL GMCP
DEBUG stream_writer.py:3384 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:1024 send IAC WILL MXP
DEBUG stream_writer.py:3384 pending_option[WILL + ATCP] = True
DEBUG stream_writer.py:1024 send IAC WILL ATCP
DEBUG stream_writer.py:3384 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSSP
DEBUG stream_writer.py:3384 pending_option[WILL + MSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSP
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:3384 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:1024 send IAC DO ZMP
DEBUG stream_writer.py:3384 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:1024 send IAC DO AARDWOLF
DEBUG stream_writer.py:3384 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:1024 send IAC DO MSDP
DEBUG stream_writer.py:3384 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:1024 send IAC DO GMCP
DEBUG stream_writer.py:3384 pending_option[DO + MXP] = True
DEBUG stream_writer.py:1024 send IAC DO MXP
DEBUG stream_writer.py:3384 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:1024 send IAC DO ATCP
DEBUG stream_writer.py:3384 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSSP
DEBUG stream_writer.py:3384 pending_option[DO + MSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSP
DEBUG stream_writer.py:3384 pending_option[DO + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP2_COMPRESS
DEBUG stream_writer.py:3384 pending_option[DO + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP3_COMPRESS
DEBUG stream_writer.py:773 recv IAC DONT ZMP
DEBUG stream_writer.py:2010 handle_dont(ZMP)
DEBUG stream_writer.py:3384 pending_option[WILL + ZMP] = False
DEBUG stream_writer.py:3384 local_option[ZMP] = False
DEBUG stream_writer.py:773 recv IAC DONT AARDWOLF
DEBUG stream_writer.py:2010 handle_dont(AARDWOLF)
DEBUG stream_writer.py:3384 pending_option[WILL + AARDWOLF] = False
DEBUG stream_writer.py:3384 local_option[AARDWOLF] = False
DEBUG stream_writer.py:773 recv IAC DONT MSDP
DEBUG stream_writer.py:2010 handle_dont(MSDP)
DEBUG stream_writer.py:3384 pending_option[WILL + MSDP] = False
DEBUG stream_writer.py:3384 local_option[MSDP] = False
DEBUG stream_writer.py:773 recv IAC DONT GMCP
DEBUG stream_writer.py:2010 handle_dont(GMCP)
DEBUG stream_writer.py:3384 pending_option[WILL + GMCP] = False
DEBUG stream_writer.py:3384 local_option[GMCP] = False
DEBUG stream_writer.py:773 recv IAC DONT MXP
DEBUG stream_writer.py:2010 handle_dont(MXP)
DEBUG stream_writer.py:3384 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:3384 local_option[MXP] = False
DEBUG stream_writer.py:773 recv IAC DONT ATCP
DEBUG stream_writer.py:2010 handle_dont(ATCP)
DEBUG stream_writer.py:3384 pending_option[WILL + ATCP] = False
DEBUG stream_writer.py:3384 local_option[ATCP] = False
DEBUG stream_writer.py:773 recv IAC DONT MSSP
DEBUG stream_writer.py:2010 handle_dont(MSSP)
DEBUG stream_writer.py:3384 pending_option[WILL + MSSP] = False
DEBUG stream_writer.py:3384 local_option[MSSP] = False
DEBUG stream_writer.py:773 recv IAC DONT MSP
DEBUG stream_writer.py:2010 handle_dont(MSP)
DEBUG stream_writer.py:3384 pending_option[WILL + MSP] = False
DEBUG stream_writer.py:3384 local_option[MSP] = False
DEBUG stream_writer.py:773 recv IAC DONT MCCP2_COMPRESS
DEBUG stream_writer.py:2010 handle_dont(MCCP2_COMPRESS)
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:3384 local_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC DONT MCCP3_COMPRESS
DEBUG stream_writer.py:2010 handle_dont(MCCP3_COMPRESS)
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:3384 local_option[MCCP3_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC WILL ZMP
DEBUG stream_writer.py:2045 handle_will(ZMP)
DEBUG stream_writer.py:998 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[ZMP] = True
DEBUG stream_writer.py:3384 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:773 recv IAC WILL AARDWOLF
DEBUG stream_writer.py:2045 handle_will(AARDWOLF)
DEBUG stream_writer.py:998 skip DO AARDWOLF; pending_option = True
DEBUG stream_writer.py:3384 remote_option[AARDWOLF] = True
DEBUG stream_writer.py:3384 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:773 recv IAC WILL MSDP
DEBUG stream_writer.py:2045 handle_will(MSDP)
DEBUG stream_writer.py:998 skip DO MSDP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[MSDP] = True
DEBUG stream_writer.py:3384 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:773 recv IAC WILL GMCP
DEBUG stream_writer.py:2045 handle_will(GMCP)
DEBUG stream_writer.py:998 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[GMCP] = True
DEBUG stream_writer.py:1072 send IAC SB GMCP Core.Hello IAC SE
DEBUG stream_writer.py:1072 send IAC SB GMCP Core.Supports.Set IAC SE
INFO client.py:201 GMCP handshake: Core.Hello + Core.Supports.Set ['Char 1', 'Char.Vitals 1', 'Char.Items 1', 'Room 1', 'Room.Info
    1', 'Comm 1', 'Comm.Channel 1', 'Group 1']
DEBUG stream_writer.py:3384 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:773 recv IAC WILL MXP
DEBUG stream_writer.py:2045 handle_will(MXP)
DEBUG stream_writer.py:998 skip DO MXP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[MXP] = True
DEBUG stream_writer.py:3384 pending_option[DO + MXP] = False
DEBUG stream_writer.py:773 recv IAC WILL ATCP
DEBUG stream_writer.py:2045 handle_will(ATCP)
DEBUG stream_writer.py:998 skip DO ATCP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[ATCP] = True
DEBUG stream_writer.py:3384 pending_option[DO + ATCP] = False
DEBUG stream_writer.py:773 recv IAC WILL MSSP
DEBUG stream_writer.py:2045 handle_will(MSSP)
DEBUG stream_writer.py:998 skip DO MSSP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[MSSP] = True
DEBUG stream_writer.py:3384 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:773 recv IAC WILL MSP
DEBUG stream_writer.py:2045 handle_will(MSP)
DEBUG stream_writer.py:998 skip DO MSP; pending_option = True
DEBUG stream_writer.py:3384 remote_option[MSP] = True
DEBUG stream_writer.py:3384 pending_option[DO + MSP] = False
DEBUG stream_writer.py:773 recv IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:2045 handle_will(MCCP2_COMPRESS)
DEBUG stream_writer.py:998 skip DO MCCP2_COMPRESS; pending_option = True
DEBUG stream_writer.py:3384 remote_option[MCCP2_COMPRESS] = True
DEBUG stream_writer.py:3384 pending_option[DO + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:2045 handle_will(MCCP3_COMPRESS)
DEBUG stream_writer.py:998 skip DO MCCP3_COMPRESS; pending_option = True
DEBUG stream_writer.py:3384 remote_option[MCCP3_COMPRESS] = True
DEBUG stream_writer.py:2110 MCCP3: client compression activated
DEBUG stream_writer.py:3384 pending_option[DO + MCCP3_COMPRESS] = False
DEBUG client_base.py:489 MCCP3 compression started (client→server)
DEBUG client_base.py:510 negotiation complete after 0.28s.
DEBUG stream_writer.py:773 recv IAC WILL ECHO
DEBUG stream_writer.py:789 WILL ECHO unsolicited
DEBUG stream_writer.py:2045 handle_will(ECHO)
DEBUG stream_writer.py:3384 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:1024 send IAC DO ECHO
DEBUG stream_writer.py:3384 remote_option[ECHO] = True
DEBUG stream_writer.py:3384 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:773 recv IAC WILL SGA
DEBUG stream_writer.py:789 WILL SGA unsolicited
DEBUG stream_writer.py:2045 handle_will(SGA)
DEBUG stream_writer.py:3384 pending_option[DO + SGA] = True
DEBUG stream_writer.py:1024 send IAC DO SGA
DEBUG stream_writer.py:3384 remote_option[SGA] = True
DEBUG stream_writer.py:3384 pending_option[DO + SGA] = False
DEBUG stream_writer.py:773 recv IAC DO TTYPE
DEBUG stream_writer.py:1887 handle_do(TTYPE)
DEBUG stream_writer.py:3384 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:1024 send IAC WILL TTYPE
DEBUG stream_writer.py:3384 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3384 local_option[TTYPE] = True
DEBUG stream_writer.py:3384 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:773 recv IAC DO TSPEED
DEBUG stream_writer.py:1887 handle_do(TSPEED)
DEBUG stream_writer.py:3384 pending_option[WILL + TSPEED] = True
DEBUG stream_writer.py:1024 send IAC WILL TSPEED
DEBUG stream_writer.py:3384 pending_option[SB + TSPEED] = True
DEBUG stream_writer.py:3384 local_option[TSPEED] = True
DEBUG stream_writer.py:3384 pending_option[WILL + TSPEED] = False
DEBUG stream_writer.py:773 recv IAC DO SNDLOC
DEBUG stream_writer.py:1887 handle_do(SNDLOC)
DEBUG stream_writer.py:1995 DO SNDLOC not supported.
DEBUG stream_writer.py:3384 local_option[SNDLOC] = False
DEBUG stream_writer.py:1024 send IAC WONT SNDLOC
DEBUG stream_writer.py:773 recv IAC DO NAWS
DEBUG stream_writer.py:1887 handle_do(NAWS)
DEBUG stream_writer.py:3384 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:1024 send IAC WILL NAWS
DEBUG stream_writer.py:2507 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3384 local_option[NAWS] = True
DEBUG stream_writer.py:3384 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:773 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1887 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3384 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:1024 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3384 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3384 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3384 pending_option[WILL + NEW_ENVIRON] = False
DEBUG server_fingerprinting.py:989 DA request -> b'\x1b[?1;2c'
DEBUG stream_writer.py:3384 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:1024 send IAC DO BINARY
DEBUG stream_writer.py:3384 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:1024 send IAC DO STATUS
DEBUG stream_writer.py:3384 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:1024 send IAC DO CHARSET
DEBUG stream_writer.py:3384 pending_option[DO + EOR] = True
DEBUG stream_writer.py:1024 send IAC DO EOR
DEBUG stream_writer.py:3384 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:1024 send IAC DO COM_PORT_OPTION
DEBUG fingerprinting.py:844 connection for server fingerprint cdf52165b1ba8b95
INFO client_base.py:120 Connection closed to <Peer 50.38.40.79 1336>

x-bit.org:2112

Connection Banner:

Welcome ! The X-Bit BBS Game Server Ver. i721.32i Registered to xbit.ops@gmail.com Todays Hits ... 53 Total Hits ... 5200 Enter Your User Name : \_

Server URLs

Server Location: 🇺🇸 United States (GeoIP)

BBS Software

Reported: Synchronet

Encoding

  • Effective encoding: ascii

  • Scanner detected: ascii

Telnet Fingerprint

e89ffa4fe5c32389

This fingerprint is shared by 132 other servers.

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

Show JSON
{
  "server-probe": {
    "fingerprint": "e89ffa4fe5c32389",
    "fingerprint-data": {
      "offered-options": [],
      "probed-protocol": "server",
      "refused-options": [
        "AARDWOLF",
        "ATCP",
        "BINARY",
        "CHARSET",
        "COM_PORT",
        "ECHO",
        "EOR",
        "GMCP",
        "MCCP2",
        "MCCP3",
        "MSDP",
        "MSP",
        "MSSP",
        "MXP",
        "SGA",
        "STATUS",
        "ZMP"
      ],
      "requested-options": [],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "",
      "banner_before_return": "\u001b[1;37;40m\u001b[0m\u001b[2J\r\n\u001b[0;37;40mWelcome !\r\n\r\n\u001b[0;1;37mThe X-Bit BBS Game Server  Ver. i721.32i\r\n\r\n\u001b[32mRegistered to xbit.ops@gmail.com\r\n\u001b[33mTodays Hits ... 53\r\n\u001b[36mTotal Hits  ... 5200\r\n\r\n\u001b[33mEnter Your User\u001b[0;1;37m Name :\u001b[0;37;40m _",
      "dsr_replies": 0,
      "dsr_requests": 0,
      "encoding": "ascii",
      "option_states": {
        "server_offered": {},
        "server_requested": {}
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.5069437026977539,
        "total": 11.01666259765625
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-04-05T19:10:36.175775+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 2112
    },
    {
      "connected": "2026-04-07T06:09:02.670471+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 2112
    }
  ]
}

Connection Log

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

Generated by telnetlib3-fingerprint

telnetlib3-fingerprint --loglevel=debug x-bit.org 2112
Show Logfile
DEBUG client.py:1200 Fingerprint client: host=x-bit.org port=2112
INFO client_base.py:190 Connected to <Peer 50.38.40.79 2112>
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:3384 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:1024 send IAC WILL GMCP
DEBUG stream_writer.py:3384 pending_option[WILL + AARDWOLF] = True
DEBUG stream_writer.py:1024 send IAC WILL AARDWOLF
DEBUG stream_writer.py:3384 pending_option[WILL + ATCP] = True
DEBUG stream_writer.py:1024 send IAC WILL ATCP
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:3384 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSSP
DEBUG stream_writer.py:3384 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:1024 send IAC WILL MXP
DEBUG stream_writer.py:3384 pending_option[WILL + MSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSP
DEBUG stream_writer.py:3384 pending_option[WILL + ZMP] = True
DEBUG stream_writer.py:1024 send IAC WILL ZMP
DEBUG stream_writer.py:3384 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSDP
DEBUG stream_writer.py:3384 pending_option[DO + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP3_COMPRESS
DEBUG stream_writer.py:3384 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:1024 send IAC DO GMCP
DEBUG stream_writer.py:3384 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:1024 send IAC DO AARDWOLF
DEBUG stream_writer.py:3384 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:1024 send IAC DO ATCP
DEBUG stream_writer.py:3384 pending_option[DO + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP2_COMPRESS
DEBUG stream_writer.py:3384 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSSP
DEBUG stream_writer.py:3384 pending_option[DO + MXP] = True
DEBUG stream_writer.py:1024 send IAC DO MXP
DEBUG stream_writer.py:3384 pending_option[DO + MSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSP
DEBUG stream_writer.py:3384 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:1024 send IAC DO ZMP
DEBUG stream_writer.py:3384 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:1024 send IAC DO MSDP
DEBUG client_base.py:534 negotiation failed after 4.00s.
DEBUG client_base.py:540 failed-reply: 'WILL MCCP3_COMPRESS, WILL GMCP, WILL AARDWOLF, WILL ATCP, WILL MCCP2_COMPRESS, WILL MSSP,
    WILL MXP, WILL MSP, WILL ZMP, WILL MSDP, DO MCCP3_COMPRESS, DO GMCP, DO AARDWOLF, DO ATCP, DO MCCP2_COMPRESS, DO MSSP, DO MXP,
    DO MSP, DO ZMP, DO MSDP'
DEBUG stream_writer.py:3384 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:1024 send IAC DO BINARY
DEBUG stream_writer.py:3384 pending_option[DO + SGA] = True
DEBUG stream_writer.py:1024 send IAC DO SGA
DEBUG stream_writer.py:3384 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:1024 send IAC DO ECHO
DEBUG stream_writer.py:3384 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:1024 send IAC DO STATUS
DEBUG stream_writer.py:3384 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:1024 send IAC DO CHARSET
DEBUG stream_writer.py:3384 pending_option[DO + EOR] = True
DEBUG stream_writer.py:1024 send IAC DO EOR
DEBUG stream_writer.py:3384 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:1024 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:998 skip DO MCCP2_COMPRESS; pending_option = True
DEBUG stream_writer.py:998 skip DO MCCP3_COMPRESS; pending_option = True
DEBUG stream_writer.py:998 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:998 skip DO MSDP; pending_option = True
DEBUG stream_writer.py:998 skip DO MSSP; pending_option = True
DEBUG stream_writer.py:998 skip DO MSP; pending_option = True
DEBUG stream_writer.py:998 skip DO MXP; pending_option = True
DEBUG stream_writer.py:998 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:998 skip DO AARDWOLF; pending_option = True
DEBUG stream_writer.py:998 skip DO ATCP; pending_option = True
DEBUG fingerprinting.py:849 connection for server fingerprint e89ffa4fe5c32389
INFO client_base.py:122 Connection closed to <Peer 50.38.40.79 2112>

x-bit.org:23230

Connection Banner:

■ Error correction modem detected. ■ Testing for RIP terminal, please stand by... ! //// (o o) oOO (_) OOo ┌─────────────────┐ ╔═════[ SPITFIRE BBS ]═══════════════════════════════════╡ 32-Bit BBS │ ║ └───────╥─────────┘ ║ For the best experience type [Y]es for color ANSI displays. ║ ║ NEW USERS: Personal Information is NOT required. When asked ║ ║ for First/Last name you can use Alias/Handel if you wish. ║ ║ When asked for phone #, just type some cool numbers :) ║ ║ ║ ╚═════════════════[ Sysop Contact: xbit.ops@gmail.com ]══════════╝ Your Sysop is Xbit Ops - Node 1 SPITFIRE Bulletin Board System - Version 3.7 Buffalo Creek Software Copyright (C) by Mike Woltz, 1987-2010 Licensed to Rob McGee for use. Serial Number SF373354 Do you want ANSI COLOR GRAPHICS? [y/N] Yes ▓▓▓▓▓▄ ▒▒▒▒▒▄▒▄▓▓▓▓▓▄ ▒▒▒▒▒▄▄ ▀▀▓█ ▀▀▀▒█ ▒█▀▓█▀▀ ▀▒█▀▀▄█▀█▄ ▓▓▓▓█ ▒▒▒▒▒█ ░▒▒▒▒▒▄ ▓█▒██▀▀ ▀█▄ ▀▀▓█ ▒█▀▀▀▀▒█ ▒█ ▓█▒█ ▀▀ ▀▀▀ ▀▀▀▀▀█▄ ▄▄▀▀▀ ▀▀▀▀▀ ▀▀ ▀▀▀ ▓▓▓▓▓█ ▒▒▒▒▒▒▒▒▒▒█ ▓▓▓▓▓▄ ▒█▀█▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀ ▀▒▄▓▄▓▓▓▓▓▄ ▒ ▓ █▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▒█▓█▓█▀▀▀▀ ▒ ▓ █ ███▀▀▀▀█▄▄▄█▀▀▀─────────────────────────────▒▒▒▒▒ ▄ ▓▓▓▓▓▄ ▓▓▓▓▓▄ ▒ ▓ █ █████████───────────────────────────────────▒█ ▒█ ▓█ ▓ █ ▀▀▀▓█ ▒ ▓ █ ██▄▄███─────────────────────────────────────▒▒▒▒▒█ ▓▓▓▓▓█ ▓▓▓▓▓█ ▒ ▓ █ █ ▄█▀▀▀██────────W─E─L─C─O─M─E─!─────────────▀▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀ ▒ ▓ █ ██▀ ────▀──────────────── ─────────────────── ██...■██▀▄▄▄▄▄▄▄▄▄▄▄▄▒ ▓ █ ██────────────────────────────────────────── ▌ ─── ▐█▐▐▌ ▒ ▓ █ █─ ────────────────────────────────────────── ▌ ─── ▐█▐ ▄▒▄▓▒▀█▄▓ ▐▌ ▒ ▓ █ ▌ ─── ▐█▐ ▓▀█▀▀█▀▀▌▒ ▐█ ▒ ▓ █ \* True retro BBS \* Running Spitfire 3.7 ▌▐█▐ ▐█▄▐▀▄▐▀▌▌ ▐█▌ ▒ ▓ █ \* Telnet Access \* 4 nodes ▌ ··· ▐█▐ ▀██▌▀██ ▐██ ▒ ▓ █ \* 100s of doors \* Inter-BBS gaming ██║║║███▐ ▐▄▀▀▐▌ ▐██ ▒ ▓ █ \* Chat Lob by\* x-bit.org/info ██╚╩╝███▐ ▀▀▀▀ ▐█ ▒ ▓ █ ████████▐████████████▐▀ ▒ ▓ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ Enter your first name: Enter your first name:

Server URLs

Server Location: 🇺🇸 United States (GeoIP)

BBS Software

Reported: Synchronet

Encoding

  • Effective encoding: cp437

  • Override: cp437 (from bbslist.txt)

  • Scanner detected: cp437

Telnet Fingerprint

0027751c27595134

This fingerprint is shared by 2 other servers.

Options offered by server: COM_PORT, ECHO, SGA

Options requested from client: BINARY

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

Show JSON
{
  "server-probe": {
    "fingerprint": "0027751c27595134",
    "fingerprint-data": {
      "offered-options": [
        "COM_PORT",
        "ECHO",
        "SGA"
      ],
      "probed-protocol": "server",
      "refused-options": [
        "AARDWOLF",
        "ATCP",
        "BINARY",
        "CHARSET",
        "EOR",
        "GMCP",
        "MCCP2",
        "MCCP3",
        "MSDP",
        "MSP",
        "MSSP",
        "MXP",
        "STATUS",
        "ZMP"
      ],
      "requested-options": [
        "BINARY"
      ],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "\r\n                                                                 ////\r\n                                                                (o o)\r\n                                                             oOO (_) OOo\r\n                                                         \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2554\u2550\u2550\u2550\u2550\u2550[ SPITFIRE BBS ]\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561   32-Bit BBS    \u2502\r\n\u2551                                                        \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2565\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n\u2551 For the best experience type [Y]es for color ANSI displays.    \u2551\r\n\u2551 NEW USERS: Personal Information is NOT required. When asked    \u2551\r\n\u2551 for First/Last name you can use Alias/Handel if you wish.      \u2551\r\n\u2551 When asked for phone #, just type some cool numbers :)         \u2551\r\n\u2551                                                                \u2551\r\n\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550[ Sysop Contact: xbit.ops@gmail.com ]\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\r\n \r\nYour Sysop is Xbit Ops - Node 1\r\nSPITFIRE Bulletin Board System - Version 3.7\r\nBuffalo Creek Software\r\nCopyright (C) by Mike Woltz, 1987-2010\r\nLicensed to Rob McGee for use.\r\nSerial Number SF373354\r\n\r\nDo you want ANSI COLOR GRAPHICS? [y/N] Yes\r\n\r\n\u001b[0;37;40;1m\u001b[?7h\u001b[40m\u001b[2J\u001b[0;1m \u001b[D \u001b[D\u001b[2;1H \u001b[0;5;31;42m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2584 \u001b[0;5;32;41m\u2592\u2592\u2592\u2592\u2592\u001b[0;1;30m\u2584\u001b[7C\u001b[5;32;44m\u2592\u001b[0;1;30m\u2584\u001b[5C\u001b[5;31;44m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2584 \u001b[5;36;41m\u2592\u2592\u2592\u2592\u2592\u001b[0;1;30m\u2584\u001b[13C\u2584\u001b[3;1H   \u2580\u2580\u001b[0;5;31;42m\u2593\u001b[0;1;30m\u2588  \u2580\u2580\u2580\u001b[0;5;32;41m\u2592\u001b[0;1;30m\u2588\u001b[7C\u001b[s\r\n\u001b[u\u001b[5;32;44m\u2592\u001b[0;1;30m\u2588\u001b[6C\u2580\u001b[5;31;44m\u2593\u001b[0;1;30m\u2588\u2580\u2580  \u2580\u001b[5;36;41m\u2592\u001b[0;1;30m\u2588\u2580\u2580\u001b[11C\u2584\u2588\u2580\u2588\u2584\u001b[4;1H  \u001b[0;5;31;42m\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2588 \u001b[0;5;32;41m\u2592\u2592\u2592\u2592\u2592\u001b[0;1;30m\u2588  \u001b[0;5;34;45m\u2591\u001b[4C\u001b[1;32;44m\u2592\u2592\u2592\u2592\u2592\u001b[0;1;30m\u2584   \u001b[5;31;44m\u2593\u001b[0;1;30m\u2588\u001b[5C\u001b[5;36;41m\u2592\u001b[0;1;30m\u2588\u001b[11C\u2588\u2580\u2580 \u001b[s\r\n\u001b[u  \u2580\u2588\u2584\u001b[5;1H   \u2580\u2580\u001b[0;5;31;42m\u2593\u001b[0;1;30m\u2588 \u001b[0;5;32;41m\u2592\u001b[0;1;30m\u2588\u2580\u2580\u2580\u2580\u001b[7C\u001b[5;32;44m\u2592\u001b[0;1;30m\u2588  \u001b[5;32;44m\u2592\u001b[0;1;30m\u2588   \u001b[5;31;44m\u2593\u001b[0;1;30m\u2588\u001b[5C\u001b[5;36;41m\u2592\u001b[0;1;30m\u2588 \u2580\u2580 \u2580\u2580\u2580 \u2580\u2580\u2580\u2580\u001b[7C\u2580\u2588\u2584 \u2584\u2584\u2580\u2580\u2580 \u2580\u2580\u2580\u2580\u2580 \u2580\u2580 \u2580\u2580\u2580\u001b[6;1H \u001b[0;5;31;42m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2588 \u001b[s\r\n\u001b[u\u001b[0;5;32;41m\u2592\u2592\u2592\u2592\u2592\u001b[8C\u001b[1;44m\u2592\u2592\u2592\u2592\u2592\u001b[0;1;30m\u2588 \u001b[5;31;44m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2584   \u001b[5;36;41m\u2592\u001b[0;1;30m\u2588\u001b[21C\u2580\u2588\u2580\u001b[7;1H   \u2580\u2580\u2580\u2580  \u2580\u2580\u2580\u2580\u2580\u001b[8C\u2580\u2580\u2580\u2580\u2580  \u2580\u2580\u2580\u2580\u2580    \u2580\u001b[8;1H\u001b[5C\u001b[5;32;44m\u2592\u001b[0;1;30m\u2584\u001b[6C\u001b[0;5;32;41m\u2593\u001b[0;1;30m\u2584\u001b[5C\u001b[5;36;45m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2584    \u2592 \u2593 \u001b[0m\u2588\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u001b[s\r\n\u001b[u\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u2580\u001b[9;1H\u001b[5C\u001b[1;5;32;44m\u2592\u001b[0;1;30m\u2588\u001b[6C\u001b[0;5;32;41m\u2593\u001b[0;1;30m\u2588\u001b[5C\u001b[5;36;45m\u2593\u001b[0;1;30m\u2588\u2580\u2580\u2580\u2580    \u2592 \u2593 \u001b[0m\u2588 \u001b[1m\u2588\u2588\u2588\u001b[47m\u2580\u2580\u2580\u2580\u001b[0m\u2588\u001b[1;30;47m\u2584\u2584\u2584\u001b[40m\u2588\u2580\u2580\u2580\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[10;1H\u001b[5C\u001b[5;32;44m\u2592\u2592\u2592\u2592\u2592\u001b[40m\u001b[s\r\n\u001b[u\u001b[0;1;30m\u2584  \u001b[0;5;32;41m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2584 \u001b[5;36;45m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2584    \u2592 \u2593 \u001b[0m\u2588 \u001b[1m\u2588\u001b[0m\u2588\u001b[1m\u2588\u2588\u001b[0m\u2588\u001b[1;30m\u2588\u2588\u2588\u2588\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[11;1H\u001b[5C\u001b[5;32;44m\u2592\u001b[0;1;30m\u2588  \u001b[5;32;44m\u2592\u001b[0;1;30m\u2588  \u001b[0;5;32;41m\u2593\u001b[0;1;30m\u2588  \u001b[0;5;32;41m\u2593\u001b[40m\u001b[s\r\n\u001b[u\u001b[0;1;30m\u2588  \u2580\u2580\u2580\u001b[5;36;45m\u2593\u001b[0;1;30m\u2588    \u2592 \u2593 \u001b[0m\u2588 \u001b[1m\u2588\u001b[0m\u2588\u001b[1;30;47m\u2584\u2584\u001b[0m\u2588\u2588\u001b[1;30m\u2588\u001b[0m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[12;1H\u001b[5C\u001b[1;5;32;44m\u2592\u2592\u2592\u2592\u2592\u001b[0;1;30m\u2588  \u001b[0;5;32;41m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2588 \u001b[5;36;45m\u2593\u2593\u2593\u2593\u2593\u001b[0;1;30m\u2588    \u2592 \u2593 \u001b[0m\u2588 \u2588\u001b[s\r\n\u001b[u\u001b[1;30;47m\u2584\u001b[40m\u2588\u2580\u2580\u2580\u2588\u2588\u001b[0m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[1;33mW\u001b[0m\u2500\u001b[1;33mE\u001b[0m\u2500\u001b[1;33mL\u001b[0m\u2500\u001b[1;33mC\u001b[0m\u2500\u001b[1;33mO\u001b[0m\u2500\u001b[1;33mM\u001b[0m\u2500\u001b[1;33mE\u001b[0m\u2500\u001b[1;33m!\u001b[0m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[13;1H\u001b[6C\u001b[1;30m\u2580\u2580\u2580\u2580\u2580   \u2580\u2580\u2580\u2580\u2580  \u2580\u2580\u2580\u2580\u2580    \u2592 \u2593 \u001b[0m\u2588 \u2588\u001b[1;30m\u2588\u2580 \u001b[0m\u2500\u2500\u2500\u2500\u001b[1;30m\u2580\u001b[0m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[s\r\n\u001b[u\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[14;1H   \u2588\u2588\u001b[30;47m...\u25a0\u001b[37;40m\u2588\u001b[1;30m\u2588\u2580\u001b[0m\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u001b[6C\u001b[1;30m\u2592 \u2593 \u001b[0m\u2588 \u001b[1;30m\u2588\u2588\u001b[36m\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[15;1H   \u001b[0m\u258c \u2500\u001b[1;30m\u2500\u001b[0m\u2500 \u2590\u001b[1;30m\u2588\u001b[0m\u2590\u001b[12C\u001b[1;30;47m\u2590\u001b[40m\u258c    \u2592 \u2593 \u001b[0m\u2588 \u001b[1;30m\u2588\u001b[37m\u2500\u001b[s\r\n\u001b[u\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u001b[16;1H   \u001b[0m\u258c \u2500\u001b[1;30m\u2500\u001b[0m\u2500 \u2590\u001b[1;30m\u2588\u001b[0m\u2590 \u001b[1;30m\u2584\u2592\u001b[31m\u2584\u2593\u2592\u2580\u2588\u2584\u001b[30m\u2593  \u001b[47m\u2590\u001b[40m\u258c    \u2592 \u2593 \u001b[0m\u2588\u001b[17;1H   \u258c \u2500\u001b[1;30m\u2500\u001b[0m\u2500 \u2590\u001b[1;30m\u2588\u001b[0m\u2590 \u001b[1;30m\u2593\u001b[31m\u2580\u2588\u2580\u2580\u2588\u2580\u2580\u258c\u001b[30m\u2592 \u001b[47m\u2590\u001b[40m\u2588    \u2592 \u2593 \u001b[0m\u2588  \u001b[1m* True \u001b[s\r\n\u001b[u\u001b[0;32mr\u001b[1;31me\u001b[0;36mt\u001b[33mr\u001b[1;35mo \u001b[37mBBS  * Running \u001b[31mSpitfire \u001b[37m3.7\u001b[18;1H   \u001b[0m\u258c\u001b[5C\u2590\u001b[1;30m\u2588\u001b[0m\u2590 \u001b[1;30m\u2590\u001b[31m\u2588\u2584\u001b[37m\u2590\u001b[44m\u2580\u001b[31;40m\u2584\u001b[37m\u2590\u001b[44m\u2580\u001b[31;40m\u258c\u001b[30m\u258c \u001b[47m\u2590\u001b[40m\u2588\u258c   \u2592 \u2593 \u001b[0m\u2588  \u001b[1m* Telnet Access   * 4 nodes\u001b[19;1H   \u001b[s\r\n\u001b[u\u001b[0m\u258c \u001b[5;36m\u00b7\u001b[0;1;31m\u00b7\u001b[0;32m\u00b7 \u001b[37m\u2590\u001b[1;30m\u2588\u001b[0m\u2590  \u001b[1;31m\u2580\u2588\u2588\u258c\u2580\u2588\u2588   \u001b[30;47m\u2590\u001b[40m\u2588\u2588   \u2592 \u2593 \u001b[0m\u2588  * 100s of doors   * Inter-BBS gaming\u001b[20;1H   \u2588\u2588\u001b[30;47m\u2551\u2551\u2551\u001b[37;40m\u2588\u2588\u001b[1;30m\u2588\u001b[0m\u2590   \u001b[1;31m\u2590\u2584\u2580\u2580\u2590\u258c   \u001b[30;47m\u2590\u001b[40m\u2588\u2588   \u2592 \u2593 \u001b[0m\u2588  \u001b[1;30m* Chat Lob\u001b[s\r\n\u001b[uby\u001b[6C* x-bit.org/info\u001b[21;1H   \u001b[0m\u2588\u2588\u001b[30;47m\u255a\u2569\u255d\u001b[37;40m\u2588\u2588\u001b[1;30m\u2588\u001b[0m\u2590    \u001b[1;31m\u2580\u2580\u2580\u2580    \u001b[30;47m\u2590\u001b[40m\u2588    \u2592 \u2593 \u001b[0m\u2588\u001b[22;1H   \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u001b[1;30m\u2588\u001b[0m\u2590\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u001b[1;30;47m\u2590\u001b[40m\u2580    \u2592 \u2593 \u001b[0m\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n\u001b[0;37;40;1m\u001b[0;37;40;1mEnter your first name: \u001b[0;36;40;1m\r\n\u001b[0;37;40;1mEnter your first name: \u001b[0;36;40;1m",
      "banner_before_return": "\u001b[6n\r\u001b[6n\r\u25a0 Error correction modem detected.\r\n\r\u25a0 Testing for RIP terminal, please stand by...\r\n\u001b[!\r    \r",
      "dsr_replies": 1,
      "dsr_requests": 1,
      "encoding": "cp437",
      "option_states": {
        "server_offered": {
          "AARDWOLF": false,
          "ATCP": false,
          "ECHO": true,
          "GMCP": false,
          "MCCP2": false,
          "MCCP3": false,
          "MSDP": false,
          "MSP": false,
          "MSSP": false,
          "MXP": false,
          "ZMP": false
        },
        "server_requested": {
          "AARDWOLF": false,
          "ATCP": false,
          "BINARY": true,
          "GMCP": false,
          "MCCP2": false,
          "MCCP3": false,
          "MSDP": false,
          "MSP": false,
          "MSSP": false,
          "MXP": false,
          "ZMP": false
        }
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.5476512908935547,
        "total": 27.988539457321167
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-04-05T19:16:29.840730+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 23230
    },
    {
      "connected": "2026-04-07T05:52:25.021951+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 23230
    },
    {
      "connected": "2026-04-08T17:09:40.714973+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 23230
    },
    {
      "connected": "2026-04-10T00:33:17.471828+00:00",
      "host": "x-bit.org",
      "ip": "50.38.40.79",
      "port": 23230
    }
  ]
}

Connection Log

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

Generated by telnetlib3-fingerprint

telnetlib3-fingerprint --loglevel=debug x-bit.org 23230
Show Logfile
DEBUG client.py:1193 Fingerprint client: host=x-bit.org port=23230
INFO client_base.py:188 Connected to <Peer 50.38.40.79 23230>
DEBUG stream_writer.py:3384 pending_option[WILL + ZMP] = True
DEBUG stream_writer.py:1024 send IAC WILL ZMP
DEBUG stream_writer.py:3384 pending_option[WILL + AARDWOLF] = True
DEBUG stream_writer.py:1024 send IAC WILL AARDWOLF
DEBUG stream_writer.py:3384 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSDP
DEBUG stream_writer.py:3384 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:1024 send IAC WILL GMCP
DEBUG stream_writer.py:3384 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:1024 send IAC WILL MXP
DEBUG stream_writer.py:3384 pending_option[WILL + ATCP] = True
DEBUG stream_writer.py:1024 send IAC WILL ATCP
DEBUG stream_writer.py:3384 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSSP
DEBUG stream_writer.py:3384 pending_option[WILL + MSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSP
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:3384 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:1024 send IAC DO ZMP
DEBUG stream_writer.py:3384 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:1024 send IAC DO AARDWOLF
DEBUG stream_writer.py:3384 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:1024 send IAC DO MSDP
DEBUG stream_writer.py:3384 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:1024 send IAC DO GMCP
DEBUG stream_writer.py:3384 pending_option[DO + MXP] = True
DEBUG stream_writer.py:1024 send IAC DO MXP
DEBUG stream_writer.py:3384 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:1024 send IAC DO ATCP
DEBUG stream_writer.py:3384 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSSP
DEBUG stream_writer.py:3384 pending_option[DO + MSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSP
DEBUG stream_writer.py:3384 pending_option[DO + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP2_COMPRESS
DEBUG stream_writer.py:3384 pending_option[DO + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP3_COMPRESS
DEBUG stream_writer.py:773 recv IAC WILL ECHO
DEBUG stream_writer.py:789 WILL ECHO unsolicited
DEBUG stream_writer.py:2045 handle_will(ECHO)
DEBUG stream_writer.py:3384 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:1024 send IAC DO ECHO
DEBUG stream_writer.py:3384 remote_option[ECHO] = True
DEBUG stream_writer.py:3384 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:773 recv IAC DO BINARY
DEBUG stream_writer.py:1887 handle_do(BINARY)
DEBUG stream_writer.py:3384 pending_option[WILL + BINARY] = True
DEBUG stream_writer.py:1024 send IAC WILL BINARY
DEBUG stream_writer.py:3384 local_option[BINARY] = True
DEBUG stream_writer.py:3384 pending_option[WILL + BINARY] = False
DEBUG stream_writer.py:773 recv IAC DONT ZMP
DEBUG stream_writer.py:2010 handle_dont(ZMP)
DEBUG stream_writer.py:3384 pending_option[WILL + ZMP] = False
DEBUG stream_writer.py:3384 local_option[ZMP] = False
DEBUG stream_writer.py:773 recv IAC DONT AARDWOLF
DEBUG stream_writer.py:2010 handle_dont(AARDWOLF)
DEBUG stream_writer.py:3384 pending_option[WILL + AARDWOLF] = False
DEBUG stream_writer.py:3384 local_option[AARDWOLF] = False
DEBUG stream_writer.py:773 recv IAC DONT MSDP
DEBUG stream_writer.py:2010 handle_dont(MSDP)
DEBUG stream_writer.py:3384 pending_option[WILL + MSDP] = False
DEBUG stream_writer.py:3384 local_option[MSDP] = False
DEBUG stream_writer.py:773 recv IAC DONT GMCP
DEBUG stream_writer.py:2010 handle_dont(GMCP)
DEBUG stream_writer.py:3384 pending_option[WILL + GMCP] = False
DEBUG stream_writer.py:3384 local_option[GMCP] = False
DEBUG stream_writer.py:773 recv IAC DONT MXP
DEBUG stream_writer.py:2010 handle_dont(MXP)
DEBUG stream_writer.py:3384 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:3384 local_option[MXP] = False
DEBUG stream_writer.py:773 recv IAC DONT ATCP
DEBUG stream_writer.py:2010 handle_dont(ATCP)
DEBUG stream_writer.py:3384 pending_option[WILL + ATCP] = False
DEBUG stream_writer.py:3384 local_option[ATCP] = False
DEBUG stream_writer.py:773 recv IAC DONT MSSP
DEBUG stream_writer.py:2010 handle_dont(MSSP)
DEBUG stream_writer.py:3384 pending_option[WILL + MSSP] = False
DEBUG stream_writer.py:3384 local_option[MSSP] = False
DEBUG stream_writer.py:773 recv IAC DONT MSP
DEBUG stream_writer.py:2010 handle_dont(MSP)
DEBUG stream_writer.py:3384 pending_option[WILL + MSP] = False
DEBUG stream_writer.py:3384 local_option[MSP] = False
DEBUG stream_writer.py:773 recv IAC DONT MCCP2_COMPRESS
DEBUG stream_writer.py:2010 handle_dont(MCCP2_COMPRESS)
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:3384 local_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC DONT MCCP3_COMPRESS
DEBUG stream_writer.py:2010 handle_dont(MCCP3_COMPRESS)
DEBUG stream_writer.py:3384 pending_option[WILL + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:3384 local_option[MCCP3_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC WONT ZMP
DEBUG stream_writer.py:2199 handle_wont(ZMP)
DEBUG stream_writer.py:3384 remote_option[ZMP] = False
DEBUG stream_writer.py:3384 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:773 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:2199 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3384 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3384 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:773 recv IAC WONT MSDP
DEBUG stream_writer.py:2199 handle_wont(MSDP)
DEBUG stream_writer.py:3384 remote_option[MSDP] = False
DEBUG stream_writer.py:3384 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:773 recv IAC WONT GMCP
DEBUG stream_writer.py:2199 handle_wont(GMCP)
DEBUG stream_writer.py:3384 remote_option[GMCP] = False
DEBUG stream_writer.py:3384 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:773 recv IAC WONT MXP
DEBUG stream_writer.py:2199 handle_wont(MXP)
DEBUG stream_writer.py:3384 remote_option[MXP] = False
DEBUG stream_writer.py:3384 pending_option[DO + MXP] = False
DEBUG stream_writer.py:773 recv IAC WONT ATCP
DEBUG stream_writer.py:2199 handle_wont(ATCP)
DEBUG stream_writer.py:3384 remote_option[ATCP] = False
DEBUG stream_writer.py:3384 pending_option[DO + ATCP] = False
DEBUG stream_writer.py:773 recv IAC WONT MSSP
DEBUG stream_writer.py:2199 handle_wont(MSSP)
DEBUG stream_writer.py:3384 remote_option[MSSP] = False
DEBUG stream_writer.py:3384 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:773 recv IAC WONT MSP
DEBUG stream_writer.py:2199 handle_wont(MSP)
DEBUG stream_writer.py:3384 remote_option[MSP] = False
DEBUG stream_writer.py:3384 pending_option[DO + MSP] = False
DEBUG stream_writer.py:773 recv IAC WONT MCCP2_COMPRESS
DEBUG stream_writer.py:2199 handle_wont(MCCP2_COMPRESS)
DEBUG stream_writer.py:3384 remote_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:3384 pending_option[DO + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC WONT MCCP3_COMPRESS
DEBUG stream_writer.py:2199 handle_wont(MCCP3_COMPRESS)
DEBUG stream_writer.py:3384 remote_option[MCCP3_COMPRESS] = False
DEBUG stream_writer.py:3384 pending_option[DO + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:773 recv IAC WILL ECHO
DEBUG stream_writer.py:789 WILL ECHO unsolicited
DEBUG stream_writer.py:2045 handle_will(ECHO)
DEBUG stream_writer.py:773 recv IAC DO BINARY
DEBUG stream_writer.py:1887 handle_do(BINARY)
DEBUG client_base.py:510 negotiation complete after 0.11s.
DEBUG stream_writer.py:3384 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:1024 send IAC DO BINARY
DEBUG stream_writer.py:3384 pending_option[DO + SGA] = True
DEBUG stream_writer.py:1024 send IAC DO SGA
DEBUG stream_writer.py:3384 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:1024 send IAC DO STATUS
DEBUG stream_writer.py:3384 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:1024 send IAC DO CHARSET
DEBUG stream_writer.py:3384 pending_option[DO + EOR] = True
DEBUG stream_writer.py:1024 send IAC DO EOR
DEBUG stream_writer.py:3384 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:1024 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:773 recv IAC WILL SGA
DEBUG stream_writer.py:2045 handle_will(SGA)
DEBUG stream_writer.py:998 skip DO SGA; pending_option = True
DEBUG stream_writer.py:3384 remote_option[SGA] = True
DEBUG stream_writer.py:3384 pending_option[DO + SGA] = False
DEBUG stream_writer.py:773 recv IAC WONT STATUS
DEBUG stream_writer.py:2199 handle_wont(STATUS)
DEBUG stream_writer.py:3384 remote_option[STATUS] = False
DEBUG stream_writer.py:3384 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:773 recv IAC WONT CHARSET
DEBUG stream_writer.py:2199 handle_wont(CHARSET)
DEBUG stream_writer.py:3384 remote_option[CHARSET] = False
DEBUG stream_writer.py:3384 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:773 recv IAC WONT EOR
DEBUG stream_writer.py:2199 handle_wont(EOR)
DEBUG stream_writer.py:3384 remote_option[EOR] = False
DEBUG stream_writer.py:3384 pending_option[DO + EOR] = False
DEBUG stream_writer.py:773 recv IAC WILL COM_PORT_OPTION
DEBUG stream_writer.py:2045 handle_will(COM_PORT_OPTION)
DEBUG stream_writer.py:998 skip DO COM_PORT_OPTION; pending_option = True
DEBUG stream_writer.py:3384 remote_option[COM_PORT_OPTION] = True
DEBUG stream_writer.py:1138 send IAC SB COM-PORT-OPTION SIGNATURE IAC SE
DEBUG stream_writer.py:3384 pending_option[DO + COM_PORT_OPTION] = False
DEBUG fingerprinting.py:844 connection for server fingerprint 0027751c27595134
INFO client_base.py:120 Connection closed to <Peer 50.38.40.79 23230>