Jorm
Connection Banner:
Server URLs
- Telnet: telnet://jorm.kurowski.xyz:4001
- Play in Browser: LociTerm
- Website: https://www.asciiart.eu/plants/mushroom
Server Info
Players online: 1 [1]
Uptime: 2 days
Server Location: 🇩🇪 Germany (GeoIP)
Protocol Support
MUD-specific protocols detected via MSSP flags or Telnet negotiation.
MSSP: Yes (MSSP)
GMCP: Negotiated
MSDP: No
MCCP: No
MCCP2: No
MXP: No
MSP: No
MCP: No
ZMP: No
Telnet Fingerprint
This fingerprint is shared by 1 other server.
Options offered by server: GMCP, MSSP
The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.
Show JSON
{
"server-probe": {
"fingerprint": "ddbc772ea79dc333",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MSSP"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MSDP",
"MSP",
"MXP",
"SGA",
"STATUS",
"ZMP"
],
"requested-options": [],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "type \"!\" to return to main menu\nType \u001b[1;32m new \u001b[0m to register.\nType \u001b[1;32m login \u001b[0m to log in.\nType \u001b[1;32m reset \u001b[0m to reset your password.\nType \u001b[1;32m guest \u001b[0m to enter as guest.\n",
"banner_before_return": "\u001b[0mArt source: \u001b[0;33mhttps://www.asciiart.eu/plants/mushroom\n\u001b[0m\n _ _ _ _ \n | | | | | | | | \n | | | | ___| | ___ ___ _ __ ___ ___ | |_ ___ \n | |/\\| |/ _ \\ |/ __/ _ \\| '_ ` _ \\ / _ \\ | __/ _ \\ \n \\ /\\ / __/ | (_| (_) | | | | | | __/ | || (_) | \n \\/ \\/ \\___|_|\\___\\___/|_| |_| |_|\\___| \\__\\___/ \n \n CURRENTLY ONLINE: \u001b[0;33m1\u001b[0m \n DISCORD: \u001b[0;33mhttps://discord.gg/AZ98axtXc6\u001b[0m \n ___ \n |_ | _. _. _.-._ \n | | ___ _ __ _ __ ___ (-)(-) .-' , '. \n | |/ _ \\| '__| '_ ` _ \\ \\ \\ / ,-. \\ \n /\\__/ / (_) | | | | | | | | ~~ | . ;_) ,| \n \\____/ \\___/|_| |_| |_| |_| )__\\___________/ \n\u001b[0m\nType \u001b[1;32m new \u001b[0m to register.\nType \u001b[1;32m login \u001b[0m to log in.\nType \u001b[1;32m reset \u001b[0m to reset your password.\nType \u001b[1;32m guest \u001b[0m to enter as guest.\n",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"mssp": {
"NAME": "Jorm",
"PLAYERS": "1",
"UPTIME": "1770899294"
},
"option_states": {
"server_offered": {
"GMCP": true,
"MSSP": true
},
"server_requested": {}
},
"scan_type": "quick",
"timing": {
"probe": 0.5128695964813232,
"total": 5.0447022914886475
}
}
},
"sessions": [
{
"connected": "2026-02-14T17:10:29.684896+00:00",
"host": "jorm.kurowski.xyz",
"ip": "139.162.165.60",
"port": 4001
}
]
}
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 jorm.kurowski.xyz 4001
Show Logfile
DEBUG client.py:965 Fingerprint client: host=jorm.kurowski.xyz port=4001
INFO client_base.py:175 Connected to <Peer 139.162.165.60 4001>
DEBUG client_base.py:492 negotiation complete after 0.00s.
DEBUG stream_writer.py:707 recv IAC WILL MSSP
DEBUG stream_writer.py:723 WILL MSSP unsolicited
DEBUG stream_writer.py:1900 handle_will(MSSP)
DEBUG stream_writer.py:3174 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:950 send IAC DO MSSP
DEBUG stream_writer.py:3174 remote_option[MSSP] = True
DEBUG stream_writer.py:3174 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:707 recv IAC WILL GMCP
DEBUG stream_writer.py:723 WILL GMCP unsolicited
DEBUG stream_writer.py:1900 handle_will(GMCP)
DEBUG stream_writer.py:3174 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:950 send IAC DO GMCP
DEBUG stream_writer.py:3174 remote_option[GMCP] = True
DEBUG stream_writer.py:3174 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:699 begin sub-negotiation SB MSSP
DEBUG stream_writer.py:686 sub-negotiation cmd MSSP SE completion byte
DEBUG stream_writer.py:2065 [SB + MSSP] unsolicited
DEBUG stream_writer.py:1673 MSSP: {'NAME': 'Jorm', 'PLAYERS': '1', 'UPTIME': '1770899294'}
DEBUG stream_writer.py:699 begin sub-negotiation SB GMCP
DEBUG stream_writer.py:686 sub-negotiation cmd GMCP SE completion byte
DEBUG stream_writer.py:2065 [SB + GMCP] unsolicited
WARNING client_base.py:527 File "/home/jquast/telnetlib3/telnetlib3/client_base.py", line 431, in _process_chunk
WARNING client_base.py:527 recv_inband = writer.feed_byte(_ONE_BYTE[b])
WARNING client_base.py:527 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
WARNING client_base.py:527 File "/home/jquast/telnetlib3/telnetlib3/stream_writer.py", line 690, in feed_byte
WARNING client_base.py:527 self.handle_subnegotiation(self._sb_buffer)
WARNING client_base.py:527 File "/home/jquast/telnetlib3/telnetlib3/stream_writer.py", line 2091, in handle_subnegotiation
WARNING client_base.py:527 fn_call(buf)
WARNING client_base.py:527 File "/home/jquast/telnetlib3/telnetlib3/stream_writer.py", line 2946, in _handle_sb_gmcp
WARNING client_base.py:527 package, data = gmcp_decode(payload, encoding=encoding)
WARNING client_base.py:527 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
WARNING client_base.py:527 File "/home/jquast/telnetlib3/telnetlib3/mud.py", line 96, in gmcp_decode
WARNING client_base.py:527 raise ValueError(f"Invalid JSON in GMCP payload: {exc}") from exc
WARNING client_base.py:527 ValueError: Invalid JSON in GMCP payload: Expecting value: line 1 column 1 (char 0)
DEBUG stream_writer.py:3174 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:950 send IAC DO BINARY
DEBUG stream_writer.py:3174 pending_option[DO + SGA] = True
DEBUG stream_writer.py:950 send IAC DO SGA
DEBUG stream_writer.py:3174 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:950 send IAC DO ECHO
DEBUG stream_writer.py:3174 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:950 send IAC DO STATUS
DEBUG stream_writer.py:3174 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:950 send IAC DO CHARSET
DEBUG stream_writer.py:3174 pending_option[DO + EOR] = True
DEBUG stream_writer.py:950 send IAC DO EOR
DEBUG stream_writer.py:3174 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:950 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:3174 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:950 send IAC DO MSDP
DEBUG stream_writer.py:3174 pending_option[DO + MSP] = True
DEBUG stream_writer.py:950 send IAC DO MSP
DEBUG stream_writer.py:3174 pending_option[DO + MXP] = True
DEBUG stream_writer.py:950 send IAC DO MXP
DEBUG stream_writer.py:3174 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:950 send IAC DO ZMP
DEBUG stream_writer.py:3174 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:950 send IAC DO AARDWOLF
DEBUG stream_writer.py:3174 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:950 send IAC DO ATCP
INFO fingerprinting.py:737 new server fingerprint ddbc772ea79dc333
INFO client_base.py:106 Connection closed to <Peer 139.162.165.60 4001>