aardmud.org =========== .. raw:: html .. raw:: html

aardmud.org:4000

Protocol Support ---------------- MUD-specific protocols detected via MSSP flags or Telnet negotiation. - **MSSP**: :proto-no:`No` - **GMCP**: :proto-negotiated:`Negotiated` - **MSDP**: :proto-no:`No` - **MCCP**: :proto-no:`No` - **MCCP2**: :proto-no:`No` - **MXP**: :proto-no:`No` - **MSP**: :proto-no:`No` - **MCP**: :proto-no:`No` - **ZMP**: :proto-no:`No` Telnet Fingerprint ------------------ :ref:`ab3ab724663115a7... ` *This fingerprint is shared by 6 other servers.* **Options requested from client**: ``NAWS``, ``TTYPE`` **Data source**: `ab3ab724663115a7/7bb6679f5875a629.json `_ The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata. .. code-block:: json { "server-probe": { "fingerprint": "ab3ab724663115a7", "fingerprint-data": { "offered-options": [], "probed-protocol": "server", "refused-options": [ "BINARY", "CHARSET", "COM_PORT", "ECHO", "EOR", "SGA", "STATUS" ], "requested-options": [ "NAWS", "TTYPE" ], "scan-type": "quick" }, "session_data": { "banner_after_return": "Please enter a character name, 'NEW' to create a new player or 'Q' to disconnect.\n\rWhat be thy name, adventurer? ", "banner_before_return": "#############################################################################\n\r##[ ]##########################\n\r##[ --- Welcome to Aardwolf MUD --- ]############ /\" #########\n\r##[ ]######## _-`\"\"\"', #######\n\r##[ Players Currently Online: 220 ]##### _-\" ) ######\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 Enter your character name or type 'NEW' to create a new character\n\r-----------------------------------------------------------------------------\n\rWhat be thy name, adventurer? ", "encoding": "ascii", "option_states": { "server_offered": { "0x55": false, "0x56": false, "0x66": false, "0xc8": false, "GMCP": true }, "server_requested": { "0x66": false, "NAWS": true, "TTYPE": true } }, "scan_type": "quick", "timing": { "probe": 0.5030090808868408, "total": 3.1710715293884277 } } }, "sessions": [ { "connected": "2026-02-08T16:55:29.357258+00:00", "host": "aardmud.org", "ip": "23.111.142.226", "port": 4000 } ] } 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:770 Fingerprint client: host=aardmud.org port=4000 INFO client_base.py:174 Connected to DEBUG stream_writer.py:697 recv IAC WILL MCCP2_COMPRESS DEBUG stream_writer.py:713 WILL MCCP2_COMPRESS unsolicited DEBUG stream_writer.py:1869 handle_will(MCCP2_COMPRESS) DEBUG stream_writer.py:3036 remote_option[MCCP2_COMPRESS] = False DEBUG stream_writer.py:938 send IAC DONT MCCP2_COMPRESS WARNING stream_writer.py:1974 Unhandled: WILL MCCP2_COMPRESS. DEBUG stream_writer.py:697 recv IAC WILL MCCP_COMPRESS DEBUG stream_writer.py:713 WILL MCCP_COMPRESS unsolicited DEBUG stream_writer.py:1869 handle_will(MCCP_COMPRESS) DEBUG stream_writer.py:3036 remote_option[MCCP_COMPRESS] = False DEBUG stream_writer.py:938 send IAC DONT MCCP_COMPRESS WARNING stream_writer.py:1974 Unhandled: WILL MCCP_COMPRESS. DEBUG stream_writer.py:697 recv IAC WILL AARDWOLF DEBUG stream_writer.py:713 WILL AARDWOLF unsolicited DEBUG stream_writer.py:1869 handle_will(AARDWOLF) DEBUG stream_writer.py:3036 pending_option[DO + AARDWOLF] = True DEBUG stream_writer.py:938 send IAC DO AARDWOLF DEBUG stream_writer.py:3036 remote_option[AARDWOLF] = True DEBUG stream_writer.py:3036 pending_option[DO + AARDWOLF] = False DEBUG stream_writer.py:697 recv IAC WILL ATCP DEBUG stream_writer.py:713 WILL ATCP unsolicited DEBUG stream_writer.py:1869 handle_will(ATCP) DEBUG stream_writer.py:3036 pending_option[DO + ATCP] = True DEBUG stream_writer.py:938 send IAC DO ATCP DEBUG stream_writer.py:3036 remote_option[ATCP] = True DEBUG stream_writer.py:3036 pending_option[DO + ATCP] = False DEBUG stream_writer.py:697 recv IAC WILL GMCP DEBUG stream_writer.py:713 WILL GMCP unsolicited DEBUG stream_writer.py:1869 handle_will(GMCP) DEBUG stream_writer.py:3036 pending_option[DO + GMCP] = True DEBUG stream_writer.py:938 send IAC DO GMCP DEBUG stream_writer.py:3036 remote_option[GMCP] = True DEBUG stream_writer.py:3036 pending_option[DO + GMCP] = False DEBUG stream_writer.py:697 recv IAC DO AARDWOLF DEBUG stream_writer.py:1739 handle_do(AARDWOLF) DEBUG stream_writer.py:3036 pending_option[WILL + AARDWOLF] = True DEBUG stream_writer.py:938 send IAC WILL AARDWOLF DEBUG stream_writer.py:3036 local_option[AARDWOLF] = True DEBUG stream_writer.py:3036 pending_option[WILL + AARDWOLF] = False DEBUG stream_writer.py:697 recv IAC DO TTYPE DEBUG stream_writer.py:1739 handle_do(TTYPE) DEBUG stream_writer.py:3036 pending_option[WILL + TTYPE] = True DEBUG stream_writer.py:938 send IAC WILL TTYPE DEBUG stream_writer.py:3036 pending_option[SB + TTYPE] = True DEBUG stream_writer.py:3036 local_option[TTYPE] = True DEBUG stream_writer.py:3036 pending_option[WILL + TTYPE] = False DEBUG stream_writer.py:697 recv IAC DO NAWS DEBUG stream_writer.py:1739 handle_do(NAWS) DEBUG stream_writer.py:3036 pending_option[WILL + NAWS] = True DEBUG stream_writer.py:938 send IAC WILL NAWS DEBUG stream_writer.py:2306 send IAC SB NAWS (rows=25, cols=80) IAC SE DEBUG stream_writer.py:3036 local_option[NAWS] = True DEBUG stream_writer.py:3036 pending_option[WILL + NAWS] = False DEBUG stream_writer.py:689 begin sub-negotiation SB AARDWOLF DEBUG stream_writer.py:676 sub-negotiation cmd AARDWOLF SE completion byte DEBUG stream_writer.py:2031 [SB + AARDWOLF] unsolicited DEBUG stream_writer.py:1661 AARDWOLF: {'channel': 'status', 'channel_byte': 100, 'data_byte': 1, 'data_bytes': b'\x01'} DEBUG client_base.py:463 negotiation failed after 4.00s. DEBUG client_base.py:470 failed-reply: 'SB TTYPE' DEBUG stream_writer.py:689 begin sub-negotiation SB AARDWOLF DEBUG stream_writer.py:676 sub-negotiation cmd AARDWOLF SE completion byte DEBUG stream_writer.py:2031 [SB + AARDWOLF] unsolicited DEBUG stream_writer.py:1661 AARDWOLF: {'channel': 'status', 'channel_byte': 100, 'data_byte': 1, 'data_bytes': b'\x01'} DEBUG stream_writer.py:3036 pending_option[DO + BINARY] = True DEBUG stream_writer.py:938 send IAC DO BINARY DEBUG stream_writer.py:3036 pending_option[DO + SGA] = True DEBUG stream_writer.py:938 send IAC DO SGA DEBUG stream_writer.py:3036 pending_option[DO + ECHO] = True DEBUG stream_writer.py:938 send IAC DO ECHO DEBUG stream_writer.py:3036 pending_option[DO + STATUS] = True DEBUG stream_writer.py:938 send IAC DO STATUS DEBUG stream_writer.py:3036 pending_option[DO + CHARSET] = True DEBUG stream_writer.py:938 send IAC DO CHARSET DEBUG stream_writer.py:3036 pending_option[DO + EOR] = True DEBUG stream_writer.py:938 send IAC DO EOR DEBUG stream_writer.py:3036 pending_option[DO + COM_PORT_OPTION] = True DEBUG stream_writer.py:938 send IAC DO COM_PORT_OPTION DEBUG stream_writer.py:3036 pending_option[DO + MSDP] = True DEBUG stream_writer.py:938 send IAC DO MSDP DEBUG stream_writer.py:3036 pending_option[DO + MSSP] = True DEBUG stream_writer.py:938 send IAC DO MSSP DEBUG stream_writer.py:3036 pending_option[DO + MSP] = True DEBUG stream_writer.py:938 send IAC DO MSP DEBUG stream_writer.py:3036 pending_option[DO + MXP] = True DEBUG stream_writer.py:938 send IAC DO MXP DEBUG stream_writer.py:3036 pending_option[DO + ZMP] = True DEBUG stream_writer.py:938 send IAC DO ZMP INFO fingerprinting.py:746 connection for server fingerprint 55b88c39615346b6 ERROR base_events.py:1821 Task exception was never retrieved future: exception=TypeError('Object of type bytes is not JSON serializable')> Traceback (most recent call last): File "/home/jquast/telnetlib3/telnetlib3/server_fingerprinting.py", line 189, in fingerprinting_client_shell await _fingerprint_session( File "/home/jquast/telnetlib3/telnetlib3/server_fingerprinting.py", line 288, in _fingerprint_session _save_server_fingerprint_data( File "/home/jquast/telnetlib3/telnetlib3/server_fingerprinting.py", line 532, in _save_server_fingerprint_data return _save_fingerprint_to_dir( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jquast/telnetlib3/telnetlib3/fingerprinting.py", line 769, in _save_fingerprint_to_dir _atomic_json_write(filepath, data) File "/home/jquast/telnetlib3/telnetlib3/fingerprinting.py", line 872, in _atomic_json_write json.dump(data, f, indent=2, sort_keys=True) File "/usr/lib/python3.12/json/__init__.py", line 179, in dump for chunk in iterable: File "/usr/lib/python3.12/json/encoder.py", line 432, in _iterencode yield from _iterencode_dict(o, _current_indent_level) File "/usr/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict yield from chunks File "/usr/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict yield from chunks File "/usr/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict yield from chunks File "/usr/lib/python3.12/json/encoder.py", line 326, in _iterencode_list yield from chunks File "/usr/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict yield from chunks File "/usr/lib/python3.12/json/encoder.py", line 439, in _iterencode o = _default(o) ^^^^^^^^^^^ File "/usr/lib/python3.12/json/encoder.py", line 180, in default raise TypeError(f'Object of type {o.__class__.__name__} ' TypeError: Object of type bytes is not JSON serializable *Generated by* `telnetlib3-fingerprint `_ .. code-block:: shell telnetlib3-fingerprint --loglevel=debug aardmud.org 4000