Solace ====== **Connection Banner:** .. image:: /_static/banners/banner_0f862ec2a258.png :alt: -""\\ .-" .\`) ( j .'_+ :[ ) .​^--.. SOLACE II, The Awakening i -" \|l ]. / i ," .:j \`8o _,,+.,.--, d\| \`:::; b Original DikuMUD by i :'\| "88p;. (-​."_"-.oP \\. : Hans Staerfeldt, ; . ( >,%%% f),):8" \\:' i Katja Nyboe, i :: j ,;%%%:; ; ; i:%%%., i. \`. Tom Madsen, i \`: ( _​___ ,-::::::' ::j [:\`\`\` [8: ) Michael Seifert, < ..\`\`'::::8888oooooo. :(jj(,;,,, [8:: < Sebastian Hammer \`. \`\`:. oo.8888888888:;%%%8o.::.+888+o.:\`:' \| \`. \` \`o\`88888888b\`%%%%%88< Y888P""'- ; Based on MERC 2.1 "\`---\`. Y\`888888888;;.,"888b.​"""..::::'-' by Hatchet, Furey, "​-.... b\`8888888:::::.\`8888._::-" and Kahn \`:::. \`:::::O:::::::.\`%%'\| \`. "\`\`::::::'' .' ROM 2.4 copyright (c) \`. < 1993-1996 Russ Taylor +: \`: -'; \`: : .::/ Solace is a role-playing, playerkilling MUD. We ask that you roleplay, and that your name is in accordance with our name rules. If it is not, you will be asked to rename. Welcome to Solace, by what name shall you be known? :class: ansi-banner :width: 610px :loading: lazy Server URLs ----------- .. raw:: html Server Info ----------- - **Players online**: 2 [#scan]_ - **Uptime**: 1 days - **Server Location**: 🇬🇧 United Kingdom (GeoIP) Protocol Support ---------------- MUD-specific protocols detected via MSSP flags or Telnet negotiation. - **MSSP**: :proto-yes:`Yes` (MSSP) - **GMCP**: :proto-negotiated:`Negotiated` - **MSDP**: :proto-negotiated:`Negotiated` - **MCCP**: :proto-no:`No` - **MCCP2**: :proto-negotiated:`Negotiated` - **MXP**: :proto-negotiated:`Negotiated` - **MSP**: :proto-negotiated:`Negotiated` - **MCP**: :proto-no:`No` - **ZMP**: :proto-no:`No` Telnet Fingerprint ------------------ :ref:`69b479d9c26ec2e2 ` *This fingerprint is shared by 3 other servers.* **Options requested from client**: ``ATCP``, ``CHARSET``, ``MXP``, ``NAWS``, ``SGA``, ``TTYPE`` The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata. .. raw:: html
Show JSON .. code-block:: json { "server-probe": { "fingerprint": "69b479d9c26ec2e2", "fingerprint-data": { "offered-options": [], "probed-protocol": "server", "refused-options": [], "requested-options": [ "ATCP", "CHARSET", "MXP", "NAWS", "SGA", "TTYPE" ], "scan-type": "quick" }, "session_data": { "atcp": [ { "package": "MSDP.SERVER_ID", "value": "Solace" } ], "banner_after_return": "", "banner_before_return": "\n\r -\"\"\\\n\r .-\" .`) (\n\r j .'_+ :[ ) .^--.. SOLACE II, The Awakening\n\r i -\" |l ]. / i\n\r ,\" .:j `8o _,,+.,.--, d| `:::; b Original DikuMUD by\n\r i :'| \"88p;. (-.\"_\"-.oP \\. : Hans Staerfeldt, \n\r ; . ( >,%%% f),):8\" \\:' i Katja Nyboe, \n\r i :: j ,;%%%:; ; ; i:%%%., i. `. Tom Madsen,\n\r i `: ( ____ ,-::::::' ::j [:``` [8: ) Michael Seifert,\n\r < ..``'::::8888oooooo. :(jj(,;,,, [8:: < Sebastian Hammer\n\r `. ``:. oo.8888888888:;%%%8o.::.+888+o.:`:' |\n\r `. ` `o`88888888b`%%%%%88< Y888P\"\"'- ; Based on MERC 2.1\n\r \"`---`. Y`888888888;;.,\"888b.\"\"\"..::::'-' by Hatchet, Furey,\n\r \"-.... b`8888888:::::.`8888._::-\" and Kahn\n\r `:::. `:::::O:::::::.`%%'|\n\r `. \"``::::::'' .' ROM 2.4 copyright (c)\n\r `. < 1993-1996 Russ Taylor\n\r +: `: -';\n\r `: : .::/\n\r\n\r\n\r\n\rSolace is a role-playing, playerkilling MUD. We ask that you roleplay, \n\rand that your name is in accordance with our name rules. If it is not, \n\ryou will be asked to rename.\n\r\n\rWelcome to Solace, by what name shall you be known? \u001b[7z", "dsr_replies": 0, "dsr_requests": 0, "encoding": "ascii", "mssp": { "CRAWL DELAY": "-1", "NAME": "Solace", "PLAYERS": "2", "UPTIME": "1775431318" }, "mxp": [ "activated" ], "option_states": { "server_offered": { "AARDWOLF": false, "ATCP": false, "GMCP": true, "MCCP2": true, "MCCP3": false, "MSDP": true, "MSP": true, "MSSP": true, "MXP": true, "ZMP": false }, "server_requested": { "AARDWOLF": false, "ATCP": true, "CHARSET": true, "MCCP2": false, "MCCP3": false, "MSDP": false, "MSP": false, "MSSP": false, "MXP": true, "NAWS": true, "SGA": true, "TTYPE": true, "ZMP": false } }, "scan_type": "quick", "timing": { "probe": 0.0, "total": 5.680565595626831 } } }, "sessions": [ { "connected": "2026-03-07T04:20:26.616400+00:00", "host": "150.107.201.19", "ip": "150.107.201.19", "port": 4000 }, { "connected": "2026-04-05T19:31:24.440857+00:00", "host": "150.107.201.19", "ip": "150.107.201.19", "port": 4000 }, { "connected": "2026-04-07T07:16:44.810091+00:00", "host": "150.107.201.19", "ip": "150.107.201.19", "port": 4000 } ] } .. raw:: html
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 `_ .. code-block:: shell telnetlib3-fingerprint --loglevel=debug 150.107.201.19 4000 .. raw:: html
Show Logfile .. code-block:: text DEBUG client.py:1200 Fingerprint client: host=150.107.201.19 port=4000 INFO client_base.py:190 Connected to 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 + MCCP3_COMPRESS] = True DEBUG stream_writer.py:1024 send IAC WILL MCCP3_COMPRESS 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 + GMCP] = True DEBUG stream_writer.py:1024 send IAC WILL GMCP 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 + MXP] = True DEBUG stream_writer.py:1024 send IAC WILL MXP 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 + ATCP] = True DEBUG stream_writer.py:1024 send IAC WILL ATCP 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 + 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 + MCCP3_COMPRESS] = True DEBUG stream_writer.py:1024 send IAC DO MCCP3_COMPRESS 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 + GMCP] = True DEBUG stream_writer.py:1024 send IAC DO GMCP 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 + MXP] = True DEBUG stream_writer.py:1024 send IAC DO MXP 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 + ATCP] = True DEBUG stream_writer.py:1024 send IAC DO ATCP DEBUG stream_writer.py:3384 pending_option[DO + MSDP] = True DEBUG stream_writer.py:1024 send IAC DO MSDP 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 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 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 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 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 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 DO MXP DEBUG stream_writer.py:1887 handle_do(MXP) DEBUG stream_writer.py:998 skip WILL MXP; pending_option = True DEBUG stream_writer.py:3384 local_option[MXP] = True DEBUG stream_writer.py:3384 pending_option[WILL + MXP] = False DEBUG stream_writer.py:767 begin sub-negotiation SB MXP DEBUG stream_writer.py:754 sub-negotiation cmd MXP SE completion byte DEBUG stream_writer.py:2238 [SB + MXP] unsolicited DEBUG stream_writer.py:1805 MXP: b'' 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 DO ATCP DEBUG stream_writer.py:1887 handle_do(ATCP) DEBUG stream_writer.py:998 skip WILL ATCP; pending_option = True DEBUG stream_writer.py:3384 local_option[ATCP] = True DEBUG stream_writer.py:3384 pending_option[WILL + ATCP] = False DEBUG stream_writer.py:767 begin sub-negotiation SB ATCP DEBUG stream_writer.py:754 sub-negotiation cmd ATCP SE completion byte DEBUG stream_writer.py:2238 [SB + ATCP] unsolicited DEBUG stream_writer.py:1820 ATCP: MSDP.SERVER_ID 'Solace' 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 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 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 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 GMCP DEBUG stream_writer.py:789 WILL GMCP unsolicited DEBUG stream_writer.py:2045 handle_will(GMCP) DEBUG stream_writer.py:3384 pending_option[DO + GMCP] = True DEBUG stream_writer.py:1024 send IAC DO GMCP 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 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 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 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:767 begin sub-negotiation SB MSSP DEBUG stream_writer.py:754 sub-negotiation cmd MSSP SE completion byte DEBUG stream_writer.py:2238 [SB + MSSP] unsolicited DEBUG stream_writer.py:1796 MSSP: {'NAME': 'Solace', 'PLAYERS': '2', 'UPTIME': '1775431318', 'CRAWL DELAY': '-1'} 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 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:767 begin sub-negotiation SB MSDP DEBUG stream_writer.py:754 sub-negotiation cmd MSDP SE completion byte DEBUG stream_writer.py:2238 [SB + MSDP] unsolicited DEBUG stream_writer.py:1792 MSDP: {'SERVER_ID': 'Solace'} DEBUG stream_writer.py:767 begin sub-negotiation SB TTYPE DEBUG stream_writer.py:754 sub-negotiation cmd TTYPE SE completion byte DEBUG stream_writer.py:3384 pending_option[SB + TTYPE] = False DEBUG stream_writer.py:2404 recv TTYPE SEND: b'' DEBUG stream_writer.py:2416 send IAC SB TTYPE IS b'xterm-256color' IAC SE 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 CHARSET DEBUG stream_writer.py:1887 handle_do(CHARSET) DEBUG stream_writer.py:3384 pending_option[WILL + CHARSET] = True DEBUG stream_writer.py:1024 send IAC WILL CHARSET DEBUG stream_writer.py:3384 local_option[CHARSET] = True DEBUG stream_writer.py:3384 pending_option[WILL + CHARSET] = False DEBUG stream_writer.py:773 recv IAC DO SGA DEBUG stream_writer.py:1887 handle_do(SGA) DEBUG stream_writer.py:3384 pending_option[WILL + SGA] = True DEBUG stream_writer.py:1024 send IAC WILL SGA DEBUG stream_writer.py:3384 local_option[SGA] = True DEBUG stream_writer.py:3384 pending_option[WILL + SGA] = False DEBUG stream_writer.py:767 begin sub-negotiation SB TTYPE DEBUG stream_writer.py:754 sub-negotiation cmd TTYPE SE completion byte DEBUG stream_writer.py:2238 [SB + TTYPE] unsolicited DEBUG stream_writer.py:2404 recv TTYPE SEND: b'' DEBUG stream_writer.py:2416 send IAC SB TTYPE IS b'xterm-256color' IAC SE DEBUG stream_writer.py:767 begin sub-negotiation SB CHARSET DEBUG stream_writer.py:754 sub-negotiation cmd CHARSET SE completion byte DEBUG stream_writer.py:2238 [SB + CHARSET] unsolicited DEBUG client.py:376 encoding negotiated: UTF-8 DEBUG stream_writer.py:2321 send IAC SB CHARSET ACCEPTED UTF-8 IAC SE DEBUG client_base.py:534 negotiation failed after 4.00s. DEBUG client_base.py:540 failed-reply: 'WILL GMCP' DEBUG client_base.py:93 EOF from server, closing. INFO client_base.py:122 Connection closed to DEBUG fingerprinting.py:849 connection for server fingerprint 69b479d9c26ec2e2 .. raw:: html
.. [#scan] measured 2026-04-07 at 07:16 UTC