104.239.142.24 (towers.t2tmud.org)
==================================
.. _ip_104_239_142_24_towers_t2tmud_org_6667:
towers.t2tmud.org:6667
----------------------
**Connection Banner:**
.. image:: /_static/banners/banner_de4249c6e62f.png
:alt: _____ _____ __\| \|___\| \| ^^ . . . \| _/ \\ . . ^ . \| \|_\| \|_\| \| \| / \\ /\\ . ^^^ \\ / / _/ \\_ . /^^\| /~~~\\_ \| \| / / \\_ /^^^^\\__ . /~ ^^^ \\ \| \|_\| \| / _/ \\ \|~ _ \\ _/ \\_ \| \| / / \\/ /_\\ \\ /~ \\\| \| \| __/ _/ _/ _-\\ \\/ \| \| __ __ \| _/ / / \\ / \| \| \| \| \| \| \| / The / / \\/ __/ \| \| \| \| \|/ Two / _/ \| \| \| \| \| Towers _/ Celebrating / \| \| \| \| \| __/ 31 Years Online! ==\| \|__\| \|__\| \| _/ ===__\| \| _/ ===== / \| / ====== = _/ est. 1994 \| ___/ ==== == == / \| __/ ===== / The Two Towers is running the TMI-2 1.1.1 mudlib on MudOS v22pre8 Please enter the name 'new' if you are new to The Two Towers. Your name? Sorry, you must supply a name for your character. Your name?
:class: ansi-banner
:width: 632px
:loading: lazy
Server URLs
~~~~~~~~~~~
.. raw:: html
Server Info
~~~~~~~~~~~
- **Server Location**: 🇺🇸 United States (GeoIP)
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-negotiated:`Negotiated`
- **MXP**: :proto-no:`No`
- **MSP**: :proto-no:`No`
- **MCP**: :proto-no:`No`
- **ZMP**: :proto-no:`No`
Telnet Fingerprint
~~~~~~~~~~~~~~~~~~
:ref:`dcd8e96ab95bbf4a `
*This fingerprint is shared by 2 other servers.*
**Options offered by server**: ``GMCP``, ``MCCP2``
**Options requested from client**: ``NAWS``, ``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": "dcd8e96ab95bbf4a",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MCCP2"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MCCP3",
"MSDP",
"MSP",
"MSSP",
"MXP",
"SGA",
"STATUS",
"ZMP"
],
"requested-options": [
"NAWS",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nYour name? ",
"banner_before_return": " _____ _____\r\n__| |___| | ^^ . . . \r\n | _/ \\ . . ^ . | |_| |_| |\r\n | / \\ /\\ . ^^^ \\ /\r\n / _/ \\_ . /^^| /~~~\\_ | | \r\n / / \\_ /^^^^\\__ . /~ ^^^ \\ | |_| | \r\n / _/ \\ |~ _ \\ _/ \\_ | | \r\n / / \\/ /_\\ \\ /~ \\| |\r\n | __/ _/ _/ _-\\ \\/ | | \r\n __ __ | _/ / / \\ / | | \r\n| | | | | / The / / \\/ __/ \r\n| | | | |/ Two / _/ \r\n| | | | | Towers _/ Celebrating / \r\n| | | | | __/ 31 Years Online! ==| \r\n|__| |__| | _/ ===__| \r\n | _/ ===== / \r\n | / ====== = _/ est. 1994 \r\n | ___/ ==== == == / \r\n | __/ ===== / \r\n\r\nThe Two Towers is running the TMI-2 1.1.1 mudlib on MudOS v22pre8\r\n\r\nPlease enter the name 'new' if you are new to The Two Towers.\r\nYour name? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"option_states": {
"server_offered": {
"0x55": false,
"GMCP": true,
"MCCP2": true
},
"server_requested": {
"NAWS": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.5039682388305664,
"total": 11.060720920562744
}
}
},
"sessions": [
{
"connected": "2026-04-05T18:56:38.071599+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 6667
},
{
"connected": "2026-04-07T06:57:28.616092+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 6667
}
]
}
.. 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 towers.t2tmud.org 6667
.. raw:: html
Show Logfile
.. code-block:: text
DEBUG client.py:1200 Fingerprint client: host=towers.t2tmud.org port=6667
INFO client_base.py:190 Connected to
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 + 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 + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP3_COMPRESS
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 + MSDP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSDP
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 + GMCP] = True
DEBUG stream_writer.py:1024 send IAC WILL GMCP
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 + 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 + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP3_COMPRESS
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 + MSDP] = True
DEBUG stream_writer.py:1024 send IAC DO MSDP
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 + GMCP] = True
DEBUG stream_writer.py:1024 send IAC DO GMCP
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 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 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 MCCP_COMPRESS
DEBUG stream_writer.py:789 WILL MCCP_COMPRESS unsolicited
DEBUG stream_writer.py:2045 handle_will(MCCP_COMPRESS)
DEBUG stream_writer.py:3384 remote_option[MCCP_COMPRESS] = False
DEBUG stream_writer.py:1024 send IAC DONT MCCP_COMPRESS
DEBUG stream_writer.py:2182 Unhandled: WILL MCCP_COMPRESS.
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:1451 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:767 begin sub-negotiation SB MCCP2_COMPRESS
DEBUG stream_writer.py:754 sub-negotiation cmd MCCP2_COMPRESS SE completion byte
DEBUG stream_writer.py:2238 [SB + MCCP2_COMPRESS] unsolicited
DEBUG stream_writer.py:3232 MCCP2 activated
DEBUG client_base.py:483 MCCP2 decompression started (server→client)
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 client_base.py:534 negotiation failed after 4.00s.
DEBUG client_base.py:540 failed-reply: 'WILL ATCP, WILL MSSP, WILL MXP, WILL MSP, WILL ZMP, WILL MCCP3_COMPRESS, WILL
MCCP2_COMPRESS, WILL MSDP, WILL AARDWOLF, WILL GMCP, DO ATCP, DO MSSP, DO MXP, DO MSP, DO ZMP, DO MCCP3_COMPRESS, DO MSDP, DO
AARDWOLF'
DEBUG stream_writer.py:1451 IAC GA: Go-Ahead (unhandled).
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 MCCP3_COMPRESS; 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 dcd8e96ab95bbf4a
INFO client_base.py:122 Connection closed to
.. raw:: html
.. _ip_104_239_142_24_towers_t2tmud_org_8080:
towers.t2tmud.org:8080
----------------------
**Connection Banner:**
.. image:: /_static/banners/banner_de4249c6e62f.png
:alt: _____ _____ __\| \|___\| \| ^^ . . . \| _/ \\ . . ^ . \| \|_\| \|_\| \| \| / \\ /\\ . ^^^ \\ / / _/ \\_ . /^^\| /~~~\\_ \| \| / / \\_ /^^^^\\__ . /~ ^^^ \\ \| \|_\| \| / _/ \\ \|~ _ \\ _/ \\_ \| \| / / \\/ /_\\ \\ /~ \\\| \| \| __/ _/ _/ _-\\ \\/ \| \| __ __ \| _/ / / \\ / \| \| \| \| \| \| \| / The / / \\/ __/ \| \| \| \| \|/ Two / _/ \| \| \| \| \| Towers _/ Celebrating / \| \| \| \| \| __/ 31 Years Online! ==\| \|__\| \|__\| \| _/ ===__\| \| _/ ===== / \| / ====== = _/ est. 1994 \| ___/ ==== == == / \| __/ ===== / The Two Towers is running the TMI-2 1.1.1 mudlib on MudOS v22pre8 Please enter the name 'new' if you are new to The Two Towers. Your name? Sorry, you must supply a name for your character. Your name?
:class: ansi-banner
:width: 632px
:loading: lazy
Server URLs
~~~~~~~~~~~
.. raw:: html
Server Info
~~~~~~~~~~~
- **Server Location**: 🇺🇸 United States (GeoIP)
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-negotiated:`Negotiated`
- **MXP**: :proto-no:`No`
- **MSP**: :proto-no:`No`
- **MCP**: :proto-no:`No`
- **ZMP**: :proto-no:`No`
Telnet Fingerprint
~~~~~~~~~~~~~~~~~~
:ref:`dcd8e96ab95bbf4a `
*This fingerprint is shared by 2 other servers.*
**Options offered by server**: ``GMCP``, ``MCCP2``
**Options requested from client**: ``NAWS``, ``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": "dcd8e96ab95bbf4a",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MCCP2"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MCCP3",
"MSDP",
"MSP",
"MSSP",
"MXP",
"SGA",
"STATUS",
"ZMP"
],
"requested-options": [
"NAWS",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nYour name? ",
"banner_before_return": " _____ _____\r\n__| |___| | ^^ . . . \r\n | _/ \\ . . ^ . | |_| |_| |\r\n | / \\ /\\ . ^^^ \\ /\r\n / _/ \\_ . /^^| /~~~\\_ | | \r\n / / \\_ /^^^^\\__ . /~ ^^^ \\ | |_| | \r\n / _/ \\ |~ _ \\ _/ \\_ | | \r\n / / \\/ /_\\ \\ /~ \\| |\r\n | __/ _/ _/ _-\\ \\/ | | \r\n __ __ | _/ / / \\ / | | \r\n| | | | | / The / / \\/ __/ \r\n| | | | |/ Two / _/ \r\n| | | | | Towers _/ Celebrating / \r\n| | | | | __/ 31 Years Online! ==| \r\n|__| |__| | _/ ===__| \r\n | _/ ===== / \r\n | / ====== = _/ est. 1994 \r\n | ___/ ==== == == / \r\n | __/ ===== / \r\n\r\nThe Two Towers is running the TMI-2 1.1.1 mudlib on MudOS v22pre8\r\n\r\nPlease enter the name 'new' if you are new to The Two Towers.\r\nYour name? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"option_states": {
"server_offered": {
"0x55": false,
"GMCP": true,
"MCCP2": true
},
"server_requested": {
"NAWS": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.5034959316253662,
"total": 11.056902885437012
}
}
},
"sessions": [
{
"connected": "2026-04-05T18:46:08.581200+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 8080
},
{
"connected": "2026-04-07T06:51:30.158494+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 8080
}
]
}
.. 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 towers.t2tmud.org 8080
.. raw:: html
Show Logfile
.. code-block:: text
DEBUG client.py:1200 Fingerprint client: host=towers.t2tmud.org port=8080
INFO client_base.py:190 Connected to
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 + 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 + 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 + MSDP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSDP
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 + ZMP] = True
DEBUG stream_writer.py:1024 send IAC WILL ZMP
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 + MSP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSP
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 + 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 + 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 + MSDP] = True
DEBUG stream_writer.py:1024 send IAC DO MSDP
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 + ZMP] = True
DEBUG stream_writer.py:1024 send IAC DO ZMP
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 + MSP] = True
DEBUG stream_writer.py:1024 send IAC DO MSP
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 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 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 MCCP_COMPRESS
DEBUG stream_writer.py:789 WILL MCCP_COMPRESS unsolicited
DEBUG stream_writer.py:2045 handle_will(MCCP_COMPRESS)
DEBUG stream_writer.py:3384 remote_option[MCCP_COMPRESS] = False
DEBUG stream_writer.py:1024 send IAC DONT MCCP_COMPRESS
DEBUG stream_writer.py:2182 Unhandled: WILL MCCP_COMPRESS.
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:1451 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:767 begin sub-negotiation SB MCCP2_COMPRESS
DEBUG stream_writer.py:754 sub-negotiation cmd MCCP2_COMPRESS SE completion byte
DEBUG stream_writer.py:2238 [SB + MCCP2_COMPRESS] unsolicited
DEBUG stream_writer.py:3232 MCCP2 activated
DEBUG client_base.py:483 MCCP2 decompression started (server→client)
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 client_base.py:534 negotiation failed after 4.00s.
DEBUG client_base.py:540 failed-reply: 'WILL MCCP3_COMPRESS, WILL AARDWOLF, WILL ATCP, WILL MSSP, WILL MXP, WILL MSDP, WILL
MCCP2_COMPRESS, WILL ZMP, WILL GMCP, WILL MSP, DO MCCP3_COMPRESS, DO AARDWOLF, DO ATCP, DO MSSP, DO MXP, DO MSDP, DO ZMP, DO
MSP'
DEBUG stream_writer.py:1451 IAC GA: Go-Ahead (unhandled).
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 MCCP3_COMPRESS; 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 dcd8e96ab95bbf4a
INFO client_base.py:122 Connection closed to
.. raw:: html
.. _ip_104_239_142_24_towers_t2tmud_org_9999:
towers.t2tmud.org:9999
----------------------
**Connection Banner:**
.. image:: /_static/banners/banner_de4249c6e62f.png
:alt: _____ _____ __\| \|___\| \| ^^ . . . \| _/ \\ . . ^ . \| \|_\| \|_\| \| \| / \\ /\\ . ^^^ \\ / / _/ \\_ . /^^\| /~~~\\_ \| \| / / \\_ /^^^^\\__ . /~ ^^^ \\ \| \|_\| \| / _/ \\ \|~ _ \\ _/ \\_ \| \| / / \\/ /_\\ \\ /~ \\\| \| \| __/ _/ _/ _-\\ \\/ \| \| __ __ \| _/ / / \\ / \| \| \| \| \| \| \| / The / / \\/ __/ \| \| \| \| \|/ Two / _/ \| \| \| \| \| Towers _/ Celebrating / \| \| \| \| \| __/ 31 Years Online! ==\| \|__\| \|__\| \| _/ ===__\| \| _/ ===== / \| / ====== = _/ est. 1994 \| ___/ ==== == == / \| __/ ===== / The Two Towers is running the TMI-2 1.1.1 mudlib on MudOS v22pre8 Please enter the name 'new' if you are new to The Two Towers. Your name? Sorry, you must supply a name for your character. Your name?
:class: ansi-banner
:width: 632px
:loading: lazy
Server URLs
~~~~~~~~~~~
.. raw:: html
Server Info
~~~~~~~~~~~
- **Server Location**: 🇺🇸 United States (GeoIP)
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-negotiated:`Negotiated`
- **MXP**: :proto-no:`No`
- **MSP**: :proto-no:`No`
- **MCP**: :proto-no:`No`
- **ZMP**: :proto-no:`No`
Telnet Fingerprint
~~~~~~~~~~~~~~~~~~
:ref:`dcd8e96ab95bbf4a `
*This fingerprint is shared by 2 other servers.*
**Options offered by server**: ``GMCP``, ``MCCP2``
**Options requested from client**: ``NAWS``, ``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": "dcd8e96ab95bbf4a",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MCCP2"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MCCP3",
"MSDP",
"MSP",
"MSSP",
"MXP",
"SGA",
"STATUS",
"ZMP"
],
"requested-options": [
"NAWS",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nYour name? ",
"banner_before_return": " _____ _____\r\n__| |___| | ^^ . . . \r\n | _/ \\ . . ^ . | |_| |_| |\r\n | / \\ /\\ . ^^^ \\ /\r\n / _/ \\_ . /^^| /~~~\\_ | | \r\n / / \\_ /^^^^\\__ . /~ ^^^ \\ | |_| | \r\n / _/ \\ |~ _ \\ _/ \\_ | | \r\n / / \\/ /_\\ \\ /~ \\| |\r\n | __/ _/ _/ _-\\ \\/ | | \r\n __ __ | _/ / / \\ / | | \r\n| | | | | / The / / \\/ __/ \r\n| | | | |/ Two / _/ \r\n| | | | | Towers _/ Celebrating / \r\n| | | | | __/ 31 Years Online! ==| \r\n|__| |__| | _/ ===__| \r\n | _/ ===== / \r\n | / ====== = _/ est. 1994 \r\n | ___/ ==== == == / \r\n | __/ ===== / \r\n\r\nThe Two Towers is running the TMI-2 1.1.1 mudlib on MudOS v22pre8\r\n\r\nPlease enter the name 'new' if you are new to The Two Towers.\r\nYour name? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"option_states": {
"server_offered": {
"0x55": false,
"GMCP": true,
"MCCP2": true
},
"server_requested": {
"NAWS": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.504899263381958,
"total": 11.058429956436157
}
}
},
"sessions": [
{
"connected": "2026-03-07T04:11:27.248012+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 9999
},
{
"connected": "2026-04-05T18:46:51.385110+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 9999
},
{
"connected": "2026-04-07T07:11:01.748540+00:00",
"host": "towers.t2tmud.org",
"ip": "104.239.142.24",
"port": 9999
}
]
}
.. 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 towers.t2tmud.org 9999
.. raw:: html
Show Logfile
.. code-block:: text
DEBUG client.py:1200 Fingerprint client: host=towers.t2tmud.org port=9999
INFO client_base.py:190 Connected to
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 + MSDP] = True
DEBUG stream_writer.py:1024 send IAC WILL MSDP
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 + 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 + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC WILL MCCP2_COMPRESS
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 + GMCP] = True
DEBUG stream_writer.py:1024 send IAC WILL GMCP
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 + MSDP] = True
DEBUG stream_writer.py:1024 send IAC DO 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 + 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 + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1024 send IAC DO MCCP2_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 + GMCP] = True
DEBUG stream_writer.py:1024 send IAC DO GMCP
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 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 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 MCCP_COMPRESS
DEBUG stream_writer.py:789 WILL MCCP_COMPRESS unsolicited
DEBUG stream_writer.py:2045 handle_will(MCCP_COMPRESS)
DEBUG stream_writer.py:3384 remote_option[MCCP_COMPRESS] = False
DEBUG stream_writer.py:1024 send IAC DONT MCCP_COMPRESS
DEBUG stream_writer.py:2182 Unhandled: WILL MCCP_COMPRESS.
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:1451 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:767 begin sub-negotiation SB MCCP2_COMPRESS
DEBUG stream_writer.py:754 sub-negotiation cmd MCCP2_COMPRESS SE completion byte
DEBUG stream_writer.py:2238 [SB + MCCP2_COMPRESS] unsolicited
DEBUG stream_writer.py:3232 MCCP2 activated
DEBUG client_base.py:483 MCCP2 decompression started (server→client)
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 client_base.py:534 negotiation failed after 4.00s.
DEBUG client_base.py:540 failed-reply: 'WILL MSSP, WILL MSP, WILL MSDP, WILL MCCP3_COMPRESS, WILL MXP, WILL ATCP, WILL
MCCP2_COMPRESS, WILL ZMP, WILL AARDWOLF, WILL GMCP, DO MSSP, DO MSP, DO MSDP, DO MCCP3_COMPRESS, DO MXP, DO ATCP, DO ZMP, DO
AARDWOLF'
DEBUG stream_writer.py:1451 IAC GA: Go-Ahead (unhandled).
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 MCCP3_COMPRESS; 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 dcd8e96ab95bbf4a
INFO client_base.py:122 Connection closed to
.. raw:: html