Encoding
~~~~~~~~
- **Effective encoding**: cp437
- **Scanner detected**: ascii
Telnet Fingerprint
~~~~~~~~~~~~~~~~~~
:ref:`d4f3adfd6a3bbb9d... `
*This fingerprint is shared by 7 other servers.*
**Options requested from client**: ``SGA``
**Data source**: `d4f3adfd6a3bbb9d/6c15b947c60023bc.json `_
The complete JSON record collected during the scan,
including Telnet negotiation results and banner data.
.. code-block:: json
{
"server-probe": {
"fingerprint": "d4f3adfd6a3bbb9d",
"fingerprint-data": {
"offered-options": [],
"probed-protocol": "server",
"refused-options": [],
"requested-options": [
"SGA"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "",
"banner_before_return": "\b\b\b\b\b\b \b\b\b\b\b\b\r\n\u001b[6n\b\b\b \b\b\bANSI not detected",
"encoding": "ascii",
"option_states": {
"server_offered": {
"BINARY": true,
"ECHO": true,
"SGA": true
},
"server_requested": {
"SGA": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.0,
"total": 0.5028276443481445
}
}
},
"sessions": [
{
"connected": "2026-02-09T19:29:21.470071+00:00",
"host": "204.10.255.79",
"ip": "204.10.255.79",
"port": 6023
}
]
}
Connection Log
~~~~~~~~~~~~~~
Debug-level log of the Telnet negotiation session,
showing each IAC (Interpret As Command) exchange
between client and server.
.. code-block:: text
DEBUG client.py:863 Fingerprint client: host=204.10.255.79 port=6023
INFO client_base.py:174 Connected to
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 SGA
DEBUG stream_writer.py:1767 handle_do(SGA)
DEBUG stream_writer.py:3167 pending_option[WILL + SGA] = True
DEBUG stream_writer.py:947 send IAC WILL SGA
DEBUG stream_writer.py:3167 local_option[SGA] = True
DEBUG stream_writer.py:3167 pending_option[WILL + SGA] = False
DEBUG stream_writer.py:706 recv IAC WILL BINARY
DEBUG stream_writer.py:722 WILL BINARY unsolicited
DEBUG stream_writer.py:1897 handle_will(BINARY)
DEBUG stream_writer.py:3167 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:947 send IAC DO BINARY
DEBUG stream_writer.py:3167 remote_option[BINARY] = True
DEBUG stream_writer.py:3167 pending_option[DO + BINARY] = False
DEBUG client_base.py:88 EOF from server, closing.
INFO client_base.py:105 Connection closed to
INFO fingerprinting.py:746 connection for server fingerprint d4f3adfd6a3bbb9d
*Generated by* `telnetlib3-fingerprint `_
.. code-block:: shell
telnetlib3-fingerprint --loglevel=debug 204.10.255.79 6023
tlcbbs.synchro.net:23
---------------------
**Connection Banner:**
.. raw:: html
Synchronet BBS for Linux Version 3.20
Telnet connection from: 64.227.40.173
Resolving hostname...
_[!_
_
Synchronet BBS for Linux Version 3.20 Copyright 2022 Rob Swindell
############################
* * * * * * ############################################
* * * * * ############################################
* * * * * * #
* * * * * ############################################
* * * * * * ############################################
* * * * *
* * * * * * ############################################
* * * * * ############################################
* * * * * *
################################################################
################################################################
################################################
################################################################
################################################################
################################################################
################################################################
################################################################
....Then conquer we must, when our cause it is just and this be our
motto "In God is our Trust", and the Star Spangled Banner in triumph
shall wave..o'er the land of the free and the home of the brave!
[Hit a key]
Preparing the BBS for your visit, stand by...
CLIENT CONN: Telnet
ADDR: <no name> [64.227.40.173]
TERM: 80x25 US-ASCII / DUMB
SERVER NAME: The Lost Chord BBS
ADDR: tlcbbs.synchro.net
NODE: 1 (of 4) - Debian GNU/Linux 11 (bullseye) x86_64
TIME: Mon Feb 09 2026 12:26 pm MST
ADMN: Weatherman
If you are a new user to the system, type "New" now.
Otherwise, enter your user name or number now.
NN:
Enter User Name or 'New' or 'Guest'
Login:
BBS Software
~~~~~~~~~~~~
**Detected**: Synchronet
Encoding
~~~~~~~~
- **Effective encoding**: cp437
- **Scanner detected**: ascii
Telnet Fingerprint
~~~~~~~~~~~~~~~~~~
:ref:`d06e080c36c73c6a... `
*This fingerprint is shared by 232 other servers.*
**Options offered by server**: ``AARDWOLF``, ``ATCP``, ``BINARY``, ``CHARSET``, ``COM_PORT``, ``ECHO``, ``EOR``, ``GMCP``, ``MSDP``, ``MSP``, ``MSSP``, ``MXP``, ``SGA``, ``STATUS``, ``ZMP``
**Options requested from client**: ``NAWS``, ``NEW_ENVIRON``, ``TSPEED``, ``TTYPE``
**Data source**: `d06e080c36c73c6a/5f3b356e0491dcce.json `_
The complete JSON record collected during the scan,
including Telnet negotiation results and banner data.
.. code-block:: json
{
"server-probe": {
"fingerprint": "d06e080c36c73c6a",
"fingerprint-data": {
"offered-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"GMCP",
"MSDP",
"MSP",
"MSSP",
"MXP",
"SGA",
"STATUS",
"ZMP"
],
"probed-protocol": "server",
"refused-options": [],
"requested-options": [
"NAWS",
"NEW_ENVIRON",
"TSPEED",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\r\n Preparing the BBS for your visit, stand by...\r\n\r\nCLIENT CONN: Telnet\r\n ADDR: [64.227.40.173]\r\n TERM: 80x25 US-ASCII / DUMB\r\nSERVER NAME: The Lost Chord BBS\r\n ADDR: tlcbbs.synchro.net\r\n NODE: 1 (of 4) - Debian GNU/Linux 11 (bullseye) x86_64\r\n TIME: Mon Feb 09 2026 12:26 pm MST\r\n ADMN: Weatherman\r\n\r\nIf you are a new user to the system, type \"New\" now.\r\nOtherwise, enter your user name or number now.\r\n\r\nNN: \rEnter User Name or 'New' or 'Guest'\r\nLogin: ",
"banner_before_return": "\r\nSynchronet BBS for Linux Version 3.20\r\nTelnet connection from: 64.227.40.173\r\nResolving hostname...\r\n\r\n\u001b[s\u001b[0c\u001b[255B\u001b[255C\b_\u001b[6n\u001b[u\u001b[!_\r\ufffd\ufffd\ufffd\u001b[6n\u001b[0m_\u001b[2J\u001b[H\f\r\r Synchronet BBS for Linux Version 3.20 Copyright 2022 Rob Swindell\r\n ############################ \r\n * * * * * * ############################################\r\n * * * * * ############################################\r\n * * * * * * # \r\n * * * * * ############################################\r\n * * * * * * ############################################\r\n * * * * * \r\n * * * * * * ############################################\r\n * * * * * ############################################\r\n * * * * * * \r\n ################################################################\r\n ################################################################\r\n ################################################ \r\n ################################################################\r\n ################################################################\r\n \r\n ################################################################\r\n ################################################################\r\n \r\n ################################################################\r\n ....Then conquer we must, when our cause it is just and this be our\r\n motto \"In God is our Trust\", and the Star Spangled Banner in triumph\r\n shall wave..o'er the land of the free and the home of the brave!\r\n[Hit a key] ",
"encoding": "ascii",
"option_states": {
"server_offered": {
"ECHO": true,
"SGA": true
},
"server_requested": {
"NAWS": true,
"NEW_ENVIRON": true,
"SNDLOC": false,
"TSPEED": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.2560465335845947,
"total": 5.927645683288574
}
}
},
"sessions": [
{
"connected": "2026-02-09T19:26:15.393012+00:00",
"host": "tlcbbs.synchro.net",
"ip": "204.10.255.79",
"port": 23
}
]
}
Connection Log
~~~~~~~~~~~~~~
Debug-level log of the Telnet negotiation session,
showing each IAC (Interpret As Command) exchange
between client and server.
.. code-block:: text
DEBUG client.py:863 Fingerprint client: host=tlcbbs.synchro.net port=23
INFO client_base.py:174 Connected to
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 TTYPE
DEBUG stream_writer.py:1767 handle_do(TTYPE)
DEBUG stream_writer.py:3167 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:947 send IAC WILL TTYPE
DEBUG stream_writer.py:3167 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3167 local_option[TTYPE] = True
DEBUG stream_writer.py:3167 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:706 recv IAC DO TSPEED
DEBUG stream_writer.py:1767 handle_do(TSPEED)
DEBUG stream_writer.py:3167 pending_option[WILL + TSPEED] = True
DEBUG stream_writer.py:947 send IAC WILL TSPEED
DEBUG stream_writer.py:3167 pending_option[SB + TSPEED] = True
DEBUG stream_writer.py:3167 local_option[TSPEED] = True
DEBUG stream_writer.py:3167 pending_option[WILL + TSPEED] = False
DEBUG stream_writer.py:706 recv IAC DO SNDLOC
DEBUG stream_writer.py:1767 handle_do(SNDLOC)
DEBUG stream_writer.py:1845 DO SNDLOC not supported.
DEBUG stream_writer.py:3167 local_option[SNDLOC] = False
DEBUG stream_writer.py:947 send IAC WONT SNDLOC
DEBUG stream_writer.py:706 recv IAC DO NAWS
DEBUG stream_writer.py:1767 handle_do(NAWS)
DEBUG stream_writer.py:3167 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:947 send IAC WILL NAWS
DEBUG stream_writer.py:2339 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3167 local_option[NAWS] = True
DEBUG stream_writer.py:3167 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:706 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1767 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3167 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:947 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3167 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3167 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3167 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:706 recv IAC DONT SNDLOC
DEBUG stream_writer.py:1860 handle_dont(SNDLOC)
DEBUG stream_writer.py:3167 pending_option[WILL + SNDLOC] = False
DEBUG stream_writer.py:698 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:685 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3167 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2234 recv TTYPE SEND: b''
DEBUG stream_writer.py:2247 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:698 begin sub-negotiation SB TSPEED
DEBUG stream_writer.py:685 sub-negotiation cmd TSPEED SE completion byte
DEBUG stream_writer.py:3167 pending_option[SB + TSPEED] = False
DEBUG stream_writer.py:2166 recv TSPEED SEND: b''
DEBUG stream_writer.py:2197 send: IAC SB TSPEED IS b'38400',b'38400' IAC SE
DEBUG client_base.py:463 negotiation failed after 4.00s.
DEBUG client_base.py:470 failed-reply: 'SB NEW_ENVIRON'
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 WILL BINARY
DEBUG stream_writer.py:1897 handle_will(BINARY)
DEBUG stream_writer.py:921 skip DO BINARY; pending_option = True
DEBUG stream_writer.py:3167 remote_option[BINARY] = True
DEBUG stream_writer.py:3167 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:706 recv IAC WILL STATUS
DEBUG stream_writer.py:1897 handle_will(STATUS)
DEBUG stream_writer.py:3167 remote_option[STATUS] = True
DEBUG stream_writer.py:1038 send IAC SB STATUS SEND IAC SE
DEBUG stream_writer.py:3167 pending_option[SB + STATUS] = True
DEBUG stream_writer.py:3167 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:706 recv IAC WILL CHARSET
DEBUG stream_writer.py:1897 handle_will(CHARSET)
DEBUG stream_writer.py:921 skip DO CHARSET; pending_option = True
DEBUG stream_writer.py:3167 remote_option[CHARSET] = True
DEBUG stream_writer.py:3167 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:706 recv IAC WILL EOR
DEBUG stream_writer.py:1897 handle_will(EOR)
DEBUG stream_writer.py:921 skip DO EOR; pending_option = True
DEBUG stream_writer.py:3167 remote_option[EOR] = True
DEBUG stream_writer.py:3167 pending_option[DO + EOR] = False
DEBUG stream_writer.py:706 recv IAC WILL COM_PORT_OPTION
DEBUG stream_writer.py:1897 handle_will(COM_PORT_OPTION)
DEBUG stream_writer.py:921 skip DO COM_PORT_OPTION; pending_option = True
DEBUG stream_writer.py:3167 remote_option[COM_PORT_OPTION] = True
DEBUG stream_writer.py:1061 send IAC SB COM-PORT-OPTION SIGNATURE IAC SE
DEBUG stream_writer.py:3167 pending_option[DO + COM_PORT_OPTION] = False
DEBUG stream_writer.py:706 recv IAC WILL GMCP
DEBUG stream_writer.py:1897 handle_will(GMCP)
DEBUG stream_writer.py:921 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[GMCP] = True
DEBUG stream_writer.py:3167 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:706 recv IAC WILL MSDP
DEBUG stream_writer.py:1897 handle_will(MSDP)
DEBUG stream_writer.py:921 skip DO MSDP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[MSDP] = True
DEBUG stream_writer.py:3167 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:706 recv IAC WILL MSSP
DEBUG stream_writer.py:1897 handle_will(MSSP)
DEBUG stream_writer.py:921 skip DO MSSP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[MSSP] = True
DEBUG stream_writer.py:3167 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:706 recv IAC WILL MSP
DEBUG stream_writer.py:1897 handle_will(MSP)
DEBUG stream_writer.py:921 skip DO MSP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[MSP] = True
DEBUG stream_writer.py:3167 pending_option[DO + MSP] = False
DEBUG stream_writer.py:706 recv IAC WILL MXP
DEBUG stream_writer.py:1897 handle_will(MXP)
DEBUG stream_writer.py:921 skip DO MXP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[MXP] = True
DEBUG stream_writer.py:3167 pending_option[SB + MXP] = True
DEBUG stream_writer.py:3167 pending_option[DO + MXP] = False
DEBUG stream_writer.py:706 recv IAC WILL ZMP
DEBUG stream_writer.py:1897 handle_will(ZMP)
DEBUG stream_writer.py:921 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[ZMP] = True
DEBUG stream_writer.py:3167 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:706 recv IAC WILL AARDWOLF
DEBUG stream_writer.py:1897 handle_will(AARDWOLF)
DEBUG stream_writer.py:921 skip DO AARDWOLF; pending_option = True
DEBUG stream_writer.py:3167 remote_option[AARDWOLF] = True
DEBUG stream_writer.py:3167 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:706 recv IAC WILL ATCP
DEBUG stream_writer.py:1897 handle_will(ATCP)
DEBUG stream_writer.py:921 skip DO ATCP; pending_option = True
DEBUG stream_writer.py:3167 remote_option[ATCP] = True
DEBUG stream_writer.py:3167 pending_option[DO + ATCP] = False
INFO fingerprinting.py:746 connection for server fingerprint d06e080c36c73c6a
INFO client_base.py:105 Connection closed to
*Generated by* `telnetlib3-fingerprint `_
.. code-block:: shell
telnetlib3-fingerprint --loglevel=debug tlcbbs.synchro.net 23
tlcbbs.synchro.net:6400
-----------------------
**Connection Banner:**
.. raw:: html
tcpser: Making connection to the The Lost Chord BBS
tcpser: please wait while I wake the computer...
CONNECTED: MON FEB 9, 2026 12:30 PM
C-NET 64 DEVELOPERS SYSTEM-2
VERSION 2.6