cthulhumud.com
Connection Banner:
Server URLs
- Telnet: telnet://cthulhumud.com:8889
- Play in Browser: LociTerm
Server Info
Server Location: 🇺🇸 United States (GeoIP)
Protocol Support
MUD-specific protocols detected via MSSP flags or Telnet negotiation.
MSSP: No
GMCP: No
MSDP: No
MCCP: No
MCCP2: Negotiated
MXP: Negotiated
MSP: No
MCP: No
ZMP: No
Telnet Fingerprint
This fingerprint is unique to this server.
Options requested from client: MCCP2, MXP, TTYPE
The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.
Show JSON
{
"server-probe": {
"fingerprint": "b2b0ac51b11a0b3d",
"fingerprint-data": {
"offered-options": [],
"probed-protocol": "server",
"refused-options": [],
"requested-options": [
"MCCP2",
"MXP",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\n\u001b[1;33mANSI Color!\u001b[0m\r\n\r\n\r\n\u001b[0;32m _.-'''-._\n\r\u001b[0;32m __.---. .' '. .---.__\n\r\u001b[0;32m ( / / \\_ _/ \\ \\ )\n\r\u001b[0;32m / ( ( ( _..._\\ /_..._ ) ) ) \\\n\r\u001b[0;32m ( \\ :(\u001b[1;33m'._.'\u001b[0;32m) (\u001b[1;33m'._.'\u001b[0;32m): / )\n\r\u001b[0;32m / ( \\ ( '-.-' '-.-' ) / ) \\\n\r\u001b[0;32m ( \\ \\_ / . . \\ _/ / )\n\r\u001b[0;32m ) \\ \\ _.-\\)) ) ( ((/-._ / / (\n\r\u001b[0;32m \\ -= /' ////\\ /\\\\\\\\ '\\ =- /\n\r\u001b[0;32m / / / // )) ))(( \\\\ \\ \\ \\\n\r\u001b[0;32m ( \u001b[0m.'\u001b[0;32m/ ))// // \\\\(( \\\u001b[0m'.\u001b[0;32m )\n\r\u001b[0;32m ( \u001b[0m|\u001b[0;32m / //(( )) ))\\\\ \\ \u001b[0m|\u001b[0;32m )\n\r\u001b[0;32m ( \u001b[0m|\u001b[0;32m/ /\\/ \\/ \\/ \\/ \\/\\ \\\u001b[0m|\u001b[0;32m )\n\r\u001b[0;32m / / / . / (_ _ _ _) \\ . \\ \\ \\\n\r\u001b[0;32m ( ( ( \\ |_ __ __ __ __ _| / ) ) )\n\r\u001b[0;32m \\ '. \\:_ __ __ _:/ .' /\n\r\u001b[0;32m \\ \u001b[0m| \u001b[0;32m\\ \\ _ _ / /\u001b[0m |\u001b[0;32m /\n\r\u001b[0;32m \\ \u001b[0m+--\u001b[0;32m\\ \\ _ _ / /\u001b[0m--+\u001b[0;32m /\n\r\u001b[0;32m \\__.'\u001b[0;32m/\u001b[0m \\ \\ _ / / \u001b[0m\\\u001b[0;32m'.__/\n\r\u001b[0m / \u001b[0;32m /) '. .' (\\ \u001b[0m\\\n\r\u001b[0m / \u001b[0;32m/()()()()\\_._._/()()()()\\ \u001b[0m\\\n\r\u001b[0m +====\u001b[0;32m( \\/)()()(\\)\u001b[0m===\u001b[0;32m(/)()()(\\/ )\u001b[0m====+\n\r\u001b[0m | \u001b[0;32m: \u001b[1;33m( \u001b[0;32m\\/\\/\\/ \u001b[1;33m) ( \u001b[0;32m\\/\\/\\/ \u001b[1;33m)\u001b[0;32m : |\n\r\u001b[0m | \u001b[0;32m| \u001b[1;33m( ( ( \u001b[0;32m: :\u001b[1;33m ) ) )\u001b[0;32m | |\n\r\u001b[0m | \u001b[0;32m\\ / \\ / \u001b[0m |\n\r\u001b[0m | \u001b[0;32m ) ( ) ( \u001b[0m |\n\r\u001b[0m | \u001b[0;32m \\ / \\ / \u001b[0m |\n\r\u001b[0m )------\u001b[0;32m) _ (\u001b[0m---------\u001b[0;32m) _ (\u001b[0m------(\n\r\u001b[0m +=====\u001b[0;32m/ \\\u001b[0m=======\u001b[0;32m/ \\\u001b[0m=====+\n\r\u001b[0m / \u001b[0;32m( / | \\ ) \u001b[0;32m( / | \\ )\u001b[0m \\ \n\r\u001b[0m /=====\u001b[0;32m/ \\\u001b[0m===\u001b[0;32m/ \\\u001b[0m=====\\\n\r\u001b[0m :====\u001b[0;32m( (\u001b[0m=\u001b[0;32m( (\u001b[0m=\u001b[0;32m( (\u001b[0m=\u001b[0;32m) )\u001b[0m=\u001b[0;32m( (\u001b[0m=\u001b[0;32m) )\u001b[0m=\u001b[0;32m) )\u001b[0m=\u001b[0;32m) )\u001b[0m====:\n\r\u001b[0m | \u001b[1;33m\\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/\u001b[0;32m |\n\r\u001b[0m :__\u001b[0;32mFinnO\u001b[0m________________________________:\n\r\r\nPlease enter your name:\r\n",
"banner_before_return": "\n\r\r\nWelcome to CthulhuMUD! We are a a derivative of Diku, Merc, Sunder, ROM,\r\nand many custom modifications. Parts of the code may be Copyright Sebasitan\r\nHammer, Michael Seifert, Hans Stoerfeldt, Tom Madsen, and Katja Nyobe\r\n(Diku 1990-1991); Michael Chastain, Michael Quan, and Mitchell Tse (Merc\r\n1992-1993); Russ Taylor (ROM 1993-1996); Lotherious, Zeran (Sunder 1997);\r\nMichael Clarke, Marduk, Foxbird, Quanqued (Cthulhu 2008). For further\r\ninformation, please type CREDITS or HELP DIKU/MERC/ROM/SUNDER/CTHULHUMUD\r\nafter getting connected.\r\n\r\nThis world is Pueblo 1.10 enhanced.\r\nAutodetecting IMP...v1.30 \r\nThis world supports \u001b[0;32mC\u001b[0;31mO\u001b[0;33mL\u001b[0;34mO\u001b[0;35mR\u001b[0m!.\r\nIf the word COLOR is in color, enter Y, otherwise, enter N (y/n)\r\n\n\r",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"option_states": {
"server_offered": {
"AARDWOLF": false,
"ATCP": false,
"EOR": true,
"GMCP": false,
"MCCP2": true,
"MCCP3": false,
"MSDP": false,
"MSP": false,
"MSSP": false,
"MXP": true,
"SGA": true,
"ZMP": false
},
"server_requested": {
"AARDWOLF": false,
"ATCP": false,
"GMCP": false,
"MCCP2": true,
"MCCP3": false,
"MSDP": false,
"MSP": false,
"MSSP": false,
"MXP": true,
"TTYPE": true,
"ZMP": false
}
},
"scan_type": "quick",
"timing": {
"probe": 0.0,
"total": 11.018660306930542
}
}
},
"sessions": [
{
"connected": "2026-03-07T03:58:31.158985+00:00",
"host": "cthulhumud.com",
"ip": "136.40.226.226",
"port": 8889
}
]
}
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 cthulhumud.com 8889
Show Logfile
DEBUG client.py:1193 Fingerprint client: host=cthulhumud.com port=8889
INFO client_base.py:186 Connected to <Peer 136.40.226.226 8889>
DEBUG stream_writer.py:3330 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:1019 send IAC WILL MXP
DEBUG stream_writer.py:3330 pending_option[WILL + ATCP] = True
DEBUG stream_writer.py:1019 send IAC WILL ATCP
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:3330 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:1019 send IAC WILL GMCP
DEBUG stream_writer.py:3330 pending_option[WILL + AARDWOLF] = True
DEBUG stream_writer.py:1019 send IAC WILL AARDWOLF
DEBUG stream_writer.py:3330 pending_option[WILL + MSP] = True
DEBUG stream_writer.py:1019 send IAC WILL MSP
DEBUG stream_writer.py:3330 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:1019 send IAC WILL MSDP
DEBUG stream_writer.py:3330 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:1019 send IAC WILL MSSP
DEBUG stream_writer.py:3330 pending_option[WILL + ZMP] = True
DEBUG stream_writer.py:1019 send IAC WILL ZMP
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:3330 pending_option[DO + MXP] = True
DEBUG stream_writer.py:1019 send IAC DO MXP
DEBUG stream_writer.py:3330 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:1019 send IAC DO ATCP
DEBUG stream_writer.py:3330 pending_option[DO + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC DO MCCP3_COMPRESS
DEBUG stream_writer.py:3330 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:1019 send IAC DO GMCP
DEBUG stream_writer.py:3330 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:1019 send IAC DO AARDWOLF
DEBUG stream_writer.py:3330 pending_option[DO + MSP] = True
DEBUG stream_writer.py:1019 send IAC DO MSP
DEBUG stream_writer.py:3330 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:1019 send IAC DO MSDP
DEBUG stream_writer.py:3330 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:1019 send IAC DO MSSP
DEBUG stream_writer.py:3330 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:1019 send IAC DO ZMP
DEBUG stream_writer.py:3330 pending_option[DO + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC DO MCCP2_COMPRESS
DEBUG stream_writer.py:762 begin sub-negotiation SB MCCP2_COMPRESS
DEBUG stream_writer.py:749 sub-negotiation cmd MCCP2_COMPRESS SE completion byte
DEBUG stream_writer.py:2187 [SB + MCCP2_COMPRESS] unsolicited
DEBUG stream_writer.py:3178 MCCP2 activated
DEBUG client_base.py:448 MCCP2 decompression started (server→client)
DEBUG stream_writer.py:768 recv IAC WILL MXP
DEBUG stream_writer.py:1994 handle_will(MXP)
DEBUG stream_writer.py:993 skip DO MXP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MXP] = True
DEBUG stream_writer.py:3330 pending_option[DO + MXP] = False
DEBUG stream_writer.py:768 recv IAC DO TTYPE
DEBUG stream_writer.py:1836 handle_do(TTYPE)
DEBUG stream_writer.py:3330 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:1019 send IAC WILL TTYPE
DEBUG stream_writer.py:3330 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3330 local_option[TTYPE] = True
DEBUG stream_writer.py:3330 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:768 recv IAC WILL EOR
DEBUG stream_writer.py:784 WILL EOR unsolicited
DEBUG stream_writer.py:1994 handle_will(EOR)
DEBUG stream_writer.py:3330 pending_option[DO + EOR] = True
DEBUG stream_writer.py:1019 send IAC DO EOR
DEBUG stream_writer.py:3330 remote_option[EOR] = True
DEBUG stream_writer.py:3330 pending_option[DO + EOR] = False
DEBUG stream_writer.py:768 recv IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:1994 handle_will(MCCP2_COMPRESS)
DEBUG stream_writer.py:993 skip DO MCCP2_COMPRESS; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MCCP2_COMPRESS] = True
DEBUG stream_writer.py:3330 pending_option[DO + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC DO MXP
DEBUG stream_writer.py:1836 handle_do(MXP)
DEBUG stream_writer.py:993 skip WILL MXP; pending_option = True
DEBUG stream_writer.py:3330 local_option[MXP] = True
DEBUG stream_writer.py:3330 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:768 recv IAC DONT ATCP
DEBUG stream_writer.py:1959 handle_dont(ATCP)
DEBUG stream_writer.py:3330 pending_option[WILL + ATCP] = False
DEBUG stream_writer.py:3330 local_option[ATCP] = False
DEBUG stream_writer.py:768 recv IAC DONT MCCP3_COMPRESS
DEBUG stream_writer.py:1959 handle_dont(MCCP3_COMPRESS)
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:3330 local_option[MCCP3_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC DONT GMCP
DEBUG stream_writer.py:1959 handle_dont(GMCP)
DEBUG stream_writer.py:3330 pending_option[WILL + GMCP] = False
DEBUG stream_writer.py:3330 local_option[GMCP] = False
DEBUG stream_writer.py:768 recv IAC DONT AARDWOLF
DEBUG stream_writer.py:1959 handle_dont(AARDWOLF)
DEBUG stream_writer.py:3330 pending_option[WILL + AARDWOLF] = False
DEBUG stream_writer.py:3330 local_option[AARDWOLF] = False
DEBUG stream_writer.py:768 recv IAC DONT MSP
DEBUG stream_writer.py:1959 handle_dont(MSP)
DEBUG stream_writer.py:3330 pending_option[WILL + MSP] = False
DEBUG stream_writer.py:3330 local_option[MSP] = False
DEBUG stream_writer.py:768 recv IAC DONT MSDP
DEBUG stream_writer.py:1959 handle_dont(MSDP)
DEBUG stream_writer.py:3330 pending_option[WILL + MSDP] = False
DEBUG stream_writer.py:3330 local_option[MSDP] = False
DEBUG stream_writer.py:768 recv IAC DONT MSSP
DEBUG stream_writer.py:1959 handle_dont(MSSP)
DEBUG stream_writer.py:3330 pending_option[WILL + MSSP] = False
DEBUG stream_writer.py:3330 local_option[MSSP] = False
DEBUG stream_writer.py:768 recv IAC DONT ZMP
DEBUG stream_writer.py:1959 handle_dont(ZMP)
DEBUG stream_writer.py:3330 pending_option[WILL + ZMP] = False
DEBUG stream_writer.py:3330 local_option[ZMP] = False
DEBUG stream_writer.py:768 recv IAC DO MCCP2_COMPRESS
DEBUG stream_writer.py:1836 handle_do(MCCP2_COMPRESS)
DEBUG stream_writer.py:993 skip WILL MCCP2_COMPRESS; pending_option = True
DEBUG stream_writer.py:3330 local_option[MCCP2_COMPRESS] = True
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC WONT ATCP
DEBUG stream_writer.py:2148 handle_wont(ATCP)
DEBUG stream_writer.py:3330 remote_option[ATCP] = False
DEBUG stream_writer.py:3330 pending_option[DO + ATCP] = False
DEBUG stream_writer.py:768 recv IAC WONT MCCP3_COMPRESS
DEBUG stream_writer.py:2148 handle_wont(MCCP3_COMPRESS)
DEBUG stream_writer.py:3330 remote_option[MCCP3_COMPRESS] = False
DEBUG stream_writer.py:3330 pending_option[DO + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC WONT GMCP
DEBUG stream_writer.py:2148 handle_wont(GMCP)
DEBUG stream_writer.py:3330 remote_option[GMCP] = False
DEBUG stream_writer.py:3330 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:768 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:2148 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3330 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3330 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:768 recv IAC WONT MSP
DEBUG stream_writer.py:2148 handle_wont(MSP)
DEBUG stream_writer.py:3330 remote_option[MSP] = False
DEBUG stream_writer.py:3330 pending_option[DO + MSP] = False
DEBUG stream_writer.py:768 recv IAC WONT MSDP
DEBUG stream_writer.py:2148 handle_wont(MSDP)
DEBUG stream_writer.py:3330 remote_option[MSDP] = False
DEBUG stream_writer.py:3330 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:768 recv IAC WONT MSSP
DEBUG stream_writer.py:2148 handle_wont(MSSP)
DEBUG stream_writer.py:3330 remote_option[MSSP] = False
DEBUG stream_writer.py:3330 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:768 recv IAC WONT ZMP
DEBUG stream_writer.py:2148 handle_wont(ZMP)
DEBUG stream_writer.py:3330 remote_option[ZMP] = False
DEBUG stream_writer.py:3330 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:762 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:749 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3330 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2353 recv TTYPE SEND: b''
DEBUG stream_writer.py:2365 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:768 recv IAC WILL SGA
DEBUG stream_writer.py:784 WILL SGA unsolicited
DEBUG stream_writer.py:1994 handle_will(SGA)
DEBUG stream_writer.py:3330 pending_option[DO + SGA] = True
DEBUG stream_writer.py:1019 send IAC DO SGA
DEBUG stream_writer.py:3330 remote_option[SGA] = True
DEBUG stream_writer.py:3330 pending_option[DO + SGA] = False
DEBUG client_base.py:496 negotiation complete after 0.74s.
DEBUG client_base.py:89 EOF from server, closing.
INFO client_base.py:118 Connection closed to <Peer 136.40.226.226 8889>
INFO fingerprinting.py:746 new server fingerprint b2b0ac51b11a0b3d