104.154.76.197 (eternalfantasy.org)
TestEF (104.154.76.197:4333)
Connection Banner:
Server URLs
- Telnet: telnet://104.154.76.197:4333
- Website: https://www.eternalfantasy.org/
- TLS/SSL: telnets://104.154.76.197:3334 (unverified certificate)
Server Info
Codebase: TMI-2 1.3-pre2(modified)
Genre: Fantasy
Players online: 1 [1]
Uptime: 960 days
Created: 1995
Status: Alpha
Server Location: 🇺🇸 United States of America (MSSP)
Language: English
Protocol Support
MUD-specific protocols detected via MSSP flags or Telnet negotiation.
MSSP: Yes (MSSP)
GMCP: Yes (MSSP)
MSDP: No
MCCP: Yes (MSSP)
MCCP2: No
MXP: No
MSP: No
MCP: No
ZMP: Negotiated
Telnet Fingerprint
This fingerprint is shared by 1 other server.
Options offered by server: ECHO, GMCP, MSSP, ZMP
Options requested from client: NAWS, NEW_ENVIRON, TTYPE
The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.
Show JSON
{
"server-probe": {
"fingerprint": "0e432442887e8de2",
"fingerprint-data": {
"offered-options": [
"ECHO",
"GMCP",
"MSSP",
"ZMP"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"EOR",
"MSDP",
"MSP",
"MXP",
"SGA",
"STATUS"
],
"requested-options": [
"NAWS",
"NEW_ENVIRON",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nWho wishes to travel beyond the sealed gate? ",
"banner_before_return": " ,_ .--.\r\n _ _ , , _)\\/ ;--.\r\n / `._ \\+O+/ _.' \\ . ' . \\_\\-' | .' \\\r\n ( @ : `. //`\\\\ .' : @ ) -= * =- (.-, / / |\r\n \\ `. `. ((a a)) .' .' / ' .\\' ). ))/ .' _/\\ /\r\n \\;' `. `.((( - ))).' .' `;/ \\_ \\_ /( / \\ /(\r\n \\`. `. ((()=())) .' .'/ /_\\ .--' `-. // \\\r\n ) :-._`/`((\"Y\"))`\\'_.-: ( ||\\/ , '._// |\r\n (`..../ /(_ * _)\\ \\....') earthly ||/ /`(_ (_,;`-._/ /\r\n >---/ / ) ( \\ \\---< fairies \\_.' ) /`\\ .'\r\n / .'.\\ \\_/\\\\_//\\_/ /.'. \\ MUD .' . | ;. /`\r\n |o _.-\\/_) '*' (_\\/-._ o| / |\\( `.(\r\n |`' ;/ \\; `'| test | |/ | ` `\r\n \".o_.-/ \\-._o.\" port | | /\r\n \"._/ \\_.\" | |.'\r\n / \\ __/' /\r\n / \\ _ .' _.-`\r\n / \\ _.` `.-;`/\r\n / \\ /_.-'` / /\r\n / \\ | /\r\n `----....._____.....----' ( /\r\n /_/\r\n\r\n\r\nCurrent users: Tim.\r\n\r\nWho wishes to travel beyond the sealed gate? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"mssp": {
"ANSI": "1",
"CLASSES": "47",
"CODEBASE": "TMI-2 1.3-pre2(modified)",
"CONTACT": "tim@eternalfantasy.org",
"CREATED": "1995",
"FAMILY": "LPMud",
"GENRE": "Fantasy",
"GMCP": "1",
"HOSTNAME": "eternalfantasy.org",
"ICON": "https://www.eternalfantasy.org/favicon.ico",
"INTERMUD": "Grapevine",
"IP": "104.154.76.197",
"LANGUAGE": "English",
"LEVELS": "99",
"LOCATION": "United States of America",
"MCCP": "1",
"MULTIPLAYING": "None",
"NAME": "TestEF",
"PLAYER CLANS": "1",
"PLAYERKILLING": "Restricted",
"PLAYERS": "1",
"PORT": "4333",
"QUEST SYSTEM": [
"Automated",
"Integrated"
],
"RACES": "10",
"ROLEPLAYING": "Encouraged",
"ROOMS": "11838",
"SSL": "3334",
"STATUS": "Alpha",
"SUBGENRE": "Final Fantasy",
"UPTIME": "1688058826",
"WEBSITE": "https://www.eternalfantasy.org/",
"WORLD ORIGINALITY": "All Original"
},
"option_states": {
"environ_requested": [
{
"name": "*",
"type": "VAR"
},
{
"name": "*",
"type": "USERVAR"
}
],
"server_offered": {
"0x56": false,
"MSSP": true
},
"server_requested": {
"NAWS": true,
"NEW_ENVIRON": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.20736050605773926,
"total": 4.812541246414185
}
}
},
"sessions": [
{
"connected": "2026-02-14T17:09:46.730912+00:00",
"host": "104.154.76.197",
"ip": "104.154.76.197",
"port": 4333
}
]
}
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 104.154.76.197 4333
Show Logfile
DEBUG client.py:965 Fingerprint client: host=104.154.76.197 port=4333
INFO client_base.py:175 Connected to <Peer 104.154.76.197 4333>
DEBUG client_base.py:492 negotiation complete after 0.00s.
DEBUG stream_writer.py:707 recv IAC DO TTYPE
DEBUG stream_writer.py:1770 handle_do(TTYPE)
DEBUG stream_writer.py:3174 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:950 send IAC WILL TTYPE
DEBUG stream_writer.py:3174 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3174 local_option[TTYPE] = True
DEBUG stream_writer.py:3174 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:707 recv IAC DO NAWS
DEBUG stream_writer.py:1770 handle_do(NAWS)
DEBUG stream_writer.py:3174 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:950 send IAC WILL NAWS
DEBUG stream_writer.py:2346 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3174 local_option[NAWS] = True
DEBUG stream_writer.py:3174 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:707 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1770 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3174 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:950 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3174 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3174 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3174 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:707 recv IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:723 WILL MCCP2_COMPRESS unsolicited
DEBUG stream_writer.py:1900 handle_will(MCCP2_COMPRESS)
DEBUG stream_writer.py:3174 remote_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:950 send IAC DONT MCCP2_COMPRESS
WARNING stream_writer.py:2008 Unhandled: WILL MCCP2_COMPRESS.
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:699 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:686 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2241 recv TTYPE SEND: b''
DEBUG stream_writer.py:2254 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:699 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:686 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2289 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2312 env send: LANG='C', TERM='xterm-256color', LINES=25, COLUMNS=80, COLORTERM=''
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: {'PLAYERS': '1', 'LEVELS': '99', 'PORT': '4333', 'LOCATION': 'United States of America',
'INTERMUD': 'Grapevine', 'PLAYERKILLING': 'Restricted', 'HOSTNAME': 'eternalfantasy.org', 'SSL': '3334', 'RACES': '10',
'GENRE': 'Fantasy', 'LANGUAGE': 'English', 'CONTACT': 'tim@eternalfantasy.org', 'QUEST SYSTEM': ['Automated', 'Integrated'],
'PLAYER CLANS': '1', 'FAMILY': 'LPMud', 'IP': '104.154.76.197', 'ROLEPLAYING': 'Encouraged', 'CREATED': '1995', 'CLASSES':
'47', 'NAME': 'TestEF', 'UPTIME': '1688058826', 'WORLD ORIGINALITY': 'All Original', 'ROOMS': '11838', 'STATUS': 'Alpha',
'GMCP': '1', 'CODEBASE': 'TMI-2 1.3-pre2(modified)', 'MULTIPLAYING': 'None', 'WEBSITE': 'https://www.eternalfantasy.org/',
'ICON': 'https://www.eternalfantasy.org/favicon.ico', 'MCCP': '1', 'ANSI': '1', 'SUBGENRE': 'Final Fantasy'}
DEBUG stream_writer.py:1323 IAC GA: Go-Ahead (unhandled).
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 + GMCP] = True
DEBUG stream_writer.py:950 send IAC DO GMCP
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
DEBUG stream_writer.py:707 recv IAC WONT BINARY
DEBUG stream_writer.py:2025 handle_wont(BINARY)
DEBUG stream_writer.py:3174 remote_option[BINARY] = False
DEBUG stream_writer.py:3174 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:707 recv IAC WILL SGA
DEBUG stream_writer.py:1900 handle_will(SGA)
DEBUG stream_writer.py:924 skip DO SGA; pending_option = True
DEBUG stream_writer.py:3174 remote_option[SGA] = True
DEBUG stream_writer.py:3174 pending_option[DO + SGA] = False
DEBUG stream_writer.py:707 recv IAC WONT SGA
DEBUG stream_writer.py:2025 handle_wont(SGA)
DEBUG stream_writer.py:3174 remote_option[SGA] = False
DEBUG stream_writer.py:707 recv IAC WILL ECHO
DEBUG stream_writer.py:1900 handle_will(ECHO)
DEBUG stream_writer.py:924 skip DO ECHO; pending_option = True
DEBUG stream_writer.py:3174 remote_option[ECHO] = True
DEBUG stream_writer.py:3174 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:707 recv IAC WONT STATUS
DEBUG stream_writer.py:2025 handle_wont(STATUS)
DEBUG stream_writer.py:3174 remote_option[STATUS] = False
DEBUG stream_writer.py:3174 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:707 recv IAC WONT CHARSET
DEBUG stream_writer.py:2025 handle_wont(CHARSET)
DEBUG stream_writer.py:3174 remote_option[CHARSET] = False
DEBUG stream_writer.py:3174 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:707 recv IAC WONT EOR
DEBUG stream_writer.py:2025 handle_wont(EOR)
DEBUG stream_writer.py:3174 remote_option[EOR] = False
DEBUG stream_writer.py:3174 pending_option[DO + EOR] = False
DEBUG stream_writer.py:707 recv IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:2025 handle_wont(COM_PORT_OPTION)
DEBUG stream_writer.py:3174 remote_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:3174 pending_option[DO + COM_PORT_OPTION] = False
DEBUG stream_writer.py:707 recv IAC WILL GMCP
DEBUG stream_writer.py:1900 handle_will(GMCP)
DEBUG stream_writer.py:924 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:3174 remote_option[GMCP] = True
DEBUG stream_writer.py:3174 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:707 recv IAC WONT MSDP
DEBUG stream_writer.py:2025 handle_wont(MSDP)
DEBUG stream_writer.py:3174 remote_option[MSDP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:707 recv IAC WONT MSP
DEBUG stream_writer.py:2025 handle_wont(MSP)
DEBUG stream_writer.py:3174 remote_option[MSP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MSP] = False
DEBUG stream_writer.py:707 recv IAC WONT MXP
DEBUG stream_writer.py:2025 handle_wont(MXP)
DEBUG stream_writer.py:3174 remote_option[MXP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MXP] = False
DEBUG stream_writer.py:707 recv IAC WILL ZMP
DEBUG stream_writer.py:1900 handle_will(ZMP)
DEBUG stream_writer.py:924 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:3174 remote_option[ZMP] = True
DEBUG stream_writer.py:3174 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:707 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:2025 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3174 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3174 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:707 recv IAC WONT ATCP
DEBUG stream_writer.py:2025 handle_wont(ATCP)
DEBUG stream_writer.py:3174 remote_option[ATCP] = False
DEBUG stream_writer.py:3174 pending_option[DO + ATCP] = False
INFO fingerprinting.py:737 new server fingerprint 0e432442887e8de2
INFO client_base.py:106 Connection closed to <Peer 104.154.76.197 4333>
The Eternal Fantasy (eternalfantasy.org:3333)
Connection Banner:
Server URLs
- Telnet: telnet://eternalfantasy.org:3333
- Website: https://www.eternalfantasy.org/
- TLS/SSL: telnets://eternalfantasy.org:3334
Server Info
Codebase: TMI-2 1.3-pre2(modified)
Genre: Fantasy
Players online: 2 [2]
Uptime: 210 days
Created: 1995
Status: Alpha
Server Location: 🇺🇸 United States of America (MSSP)
Language: English
Protocol Support
MUD-specific protocols detected via MSSP flags or Telnet negotiation.
MSSP: Yes (MSSP)
GMCP: Yes (MSSP)
MSDP: No
MCCP: No
MCCP2: No
MXP: Negotiated
MSP: No
MCP: No
ZMP: Negotiated
Telnet Fingerprint
This fingerprint is shared by 16 other servers.
Options offered by server: GMCP, MSSP, ZMP
Options requested from client: MXP, NAWS, NEW_ENVIRON, TTYPE
The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.
Show JSON
{
"server-probe": {
"fingerprint": "909f753421a0f55b",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MSSP",
"ZMP"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MSDP",
"MSP",
"MXP",
"SGA",
"STATUS"
],
"requested-options": [
"MXP",
"NAWS",
"NEW_ENVIRON",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nWho wishes to travel beyond the sealed gate? ",
"banner_before_return": " _______________________________________________________\r\n / + . .\\ . _ . / . . * \\\r\n | . ;\\_ . \\ * /@\\ . / . _/; .. |\r\n | * \\ \\__ . \\ . @ / __/ / . |\r\n | . . \\_* \\ + /^\\__@__/^\\ . / *_/ . . |\r\n | . \\__\\ |@__{*}__@| /__/ . |\r\n |Welcome to . . V \\|/ V . * . |\r\n | The Eternal . ||| . + . . * |\r\n | . * FFFF AAA N . N ||| AAA SSS Y Y . |\r\n | . F A A NN N ||| A . A S . .Y Y . . |\r\n | . . FF AAAAA N N N ||| AAAAA SS * Y |\r\n | . F A A N NN ||| A A . S Y * + |\r\n | + F . A A N . N ||| A * A SSS . Y . |\r\n | . ________--------|||--------________ . + |\r\n |__-------- \\|/ --------__|\r\n | A MUD Based On V |\r\n | Final Fantasy, The Videogame Series Made By SquareEnix|\r\n | Admin Contact: tim@eternalfantasy.org |\r\n | Website: https://www.eternalfantasy.org/ |\r\n | Status: [ALPHA] revamping quests |\r\n \\_______________________________________________________/\r\nNames from popular media (including books, games, movies, etc) aren't allowed.\r\n Make a NEW and unique name.\r\nNames are not titles, nicknames, descriptives, or combinations of words.\r\nIf you want to learn about TEF before taking the time to think of a good name,\r\nlog in as Guest or look at the web site.\r\n\r\nThe Eternal Fantasy is running the TMI-2 1.3-pre2(modified) mudlib on FluffOS v2.27\r\n\r\nCurrent users: Tim, and Enker.\r\n\r\nWho wishes to travel beyond the sealed gate? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "utf-8",
"mssp": {
"ANSI": "1",
"CLASSES": "47",
"CODEBASE": "TMI-2 1.3-pre2(modified)",
"CONTACT": "tim@eternalfantasy.org",
"CREATED": "1995",
"FAMILY": "LPMud",
"GENRE": "Fantasy",
"GMCP": "1",
"HOSTNAME": "eternalfantasy.org",
"ICON": "https://www.eternalfantasy.org/favicon.ico",
"INTERMUD": "Grapevine",
"IP": "104.154.76.197",
"LANGUAGE": "English",
"LEVELS": "99",
"LOCATION": "United States of America",
"MCCP": "0",
"MULTIPLAYING": "None",
"NAME": "The Eternal Fantasy",
"PLAYER CLANS": "1",
"PLAYERKILLING": "Restricted",
"PLAYERS": "2",
"PORT": "3333",
"QUEST SYSTEM": [
"Automated",
"Integrated"
],
"RACES": "10",
"ROLEPLAYING": "Encouraged",
"ROOMS": "11838",
"SSL": "3334",
"STATUS": "Alpha",
"SUBGENRE": "Final Fantasy",
"UPTIME": "1752897842",
"WEBSITE": "https://www.eternalfantasy.org/",
"WORLD ORIGINALITY": "All Original"
},
"option_states": {
"environ_requested": [
{
"name": "*",
"type": "VAR"
},
{
"name": "*",
"type": "USERVAR"
}
],
"server_offered": {
"GMCP": true,
"MSSP": true,
"ZMP": true
},
"server_requested": {
"MXP": true,
"NAWS": true,
"NEW_ENVIRON": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.509681224822998,
"total": 5.114426851272583
}
}
},
"sessions": [
{
"connected": "2026-02-14T17:12:26.064014+00:00",
"host": "eternalfantasy.org",
"ip": "104.154.76.197",
"port": 3333
}
]
}
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 eternalfantasy.org 3333
Show Logfile
DEBUG client.py:965 Fingerprint client: host=eternalfantasy.org port=3333
INFO client_base.py:175 Connected to <Peer 104.154.76.197 3333>
DEBUG client_base.py:492 negotiation complete after 0.00s.
DEBUG stream_writer.py:707 recv IAC DO TTYPE
DEBUG stream_writer.py:1770 handle_do(TTYPE)
DEBUG stream_writer.py:3174 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:950 send IAC WILL TTYPE
DEBUG stream_writer.py:3174 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3174 local_option[TTYPE] = True
DEBUG stream_writer.py:3174 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:707 recv IAC DO NAWS
DEBUG stream_writer.py:1770 handle_do(NAWS)
DEBUG stream_writer.py:3174 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:950 send IAC WILL NAWS
DEBUG stream_writer.py:2346 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3174 local_option[NAWS] = True
DEBUG stream_writer.py:3174 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:707 recv IAC DO MXP
DEBUG stream_writer.py:1770 handle_do(MXP)
DEBUG stream_writer.py:3174 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:950 send IAC WILL MXP
DEBUG stream_writer.py:3174 pending_option[SB + MXP] = True
DEBUG stream_writer.py:3174 local_option[MXP] = True
DEBUG stream_writer.py:3174 pending_option[WILL + MXP] = False
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 ZMP
DEBUG stream_writer.py:723 WILL ZMP unsolicited
DEBUG stream_writer.py:1900 handle_will(ZMP)
DEBUG stream_writer.py:3174 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:950 send IAC DO ZMP
DEBUG stream_writer.py:3174 remote_option[ZMP] = True
DEBUG stream_writer.py:3174 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:707 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1770 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3174 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:950 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3174 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3174 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3174 pending_option[WILL + NEW_ENVIRON] = 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 TTYPE
DEBUG stream_writer.py:686 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2241 recv TTYPE SEND: b''
DEBUG stream_writer.py:2254 send IAC SB TTYPE IS b'xterm-256color' IAC SE
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: {'PLAYERS': '2', 'LEVELS': '99', 'PORT': '3333', 'LOCATION': 'United States of America',
'INTERMUD': 'Grapevine', 'PLAYERKILLING': 'Restricted', 'HOSTNAME': 'eternalfantasy.org', 'SSL': '3334', 'RACES': '10',
'GENRE': 'Fantasy', 'LANGUAGE': 'English', 'CONTACT': 'tim@eternalfantasy.org', 'QUEST SYSTEM': ['Automated', 'Integrated'],
'PLAYER CLANS': '1', 'FAMILY': 'LPMud', 'IP': '104.154.76.197', 'ROLEPLAYING': 'Encouraged', 'CREATED': '1995', 'CLASSES':
'47', 'NAME': 'The Eternal Fantasy', 'UPTIME': '1752897842', 'WORLD ORIGINALITY': 'All Original', 'ROOMS': '11838', 'STATUS':
'Alpha', 'GMCP': '1', 'CODEBASE': 'TMI-2 1.3-pre2(modified)', 'MULTIPLAYING': 'None', 'WEBSITE':
'https://www.eternalfantasy.org/', 'ICON': 'https://www.eternalfantasy.org/favicon.ico', 'MCCP': '0', 'ANSI': '1', 'SUBGENRE':
'Final Fantasy'}
DEBUG stream_writer.py:699 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:686 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2289 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2312 env send: LANG='C', TERM='xterm-256color', LINES=25, COLUMNS=80, COLORTERM=''
DEBUG stream_writer.py:1323 IAC GA: Go-Ahead (unhandled).
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 + 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
DEBUG stream_writer.py:707 recv IAC WONT BINARY
DEBUG stream_writer.py:2025 handle_wont(BINARY)
DEBUG stream_writer.py:3174 remote_option[BINARY] = False
DEBUG stream_writer.py:3174 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:707 recv IAC WONT SGA
DEBUG stream_writer.py:2025 handle_wont(SGA)
DEBUG stream_writer.py:3174 remote_option[SGA] = False
DEBUG stream_writer.py:3174 pending_option[DO + SGA] = False
DEBUG stream_writer.py:707 recv IAC WONT STATUS
DEBUG stream_writer.py:2025 handle_wont(STATUS)
DEBUG stream_writer.py:3174 remote_option[STATUS] = False
DEBUG stream_writer.py:3174 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:707 recv IAC WONT CHARSET
DEBUG stream_writer.py:2025 handle_wont(CHARSET)
DEBUG stream_writer.py:3174 remote_option[CHARSET] = False
DEBUG stream_writer.py:3174 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:707 recv IAC WONT EOR
DEBUG stream_writer.py:2025 handle_wont(EOR)
DEBUG stream_writer.py:3174 remote_option[EOR] = False
DEBUG stream_writer.py:3174 pending_option[DO + EOR] = False
DEBUG stream_writer.py:707 recv IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:2025 handle_wont(COM_PORT_OPTION)
DEBUG stream_writer.py:3174 remote_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:3174 pending_option[DO + COM_PORT_OPTION] = False
DEBUG stream_writer.py:707 recv IAC WONT MSDP
DEBUG stream_writer.py:2025 handle_wont(MSDP)
DEBUG stream_writer.py:3174 remote_option[MSDP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:707 recv IAC WONT MSP
DEBUG stream_writer.py:2025 handle_wont(MSP)
DEBUG stream_writer.py:3174 remote_option[MSP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MSP] = False
DEBUG stream_writer.py:707 recv IAC WONT MXP
DEBUG stream_writer.py:2025 handle_wont(MXP)
DEBUG stream_writer.py:3174 remote_option[MXP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MXP] = False
DEBUG stream_writer.py:707 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:2025 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3174 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3174 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:707 recv IAC WONT ATCP
DEBUG stream_writer.py:2025 handle_wont(ATCP)
DEBUG stream_writer.py:3174 remote_option[ATCP] = False
DEBUG stream_writer.py:3174 pending_option[DO + ATCP] = False
INFO fingerprinting.py:746 connection for server fingerprint 909f753421a0f55b
INFO client_base.py:106 Connection closed to <Peer 104.154.76.197 3333>
The Eternal Fantasy (eternalfantasy.org:3334)
Connection Banner:
Server URLs
- Telnet: telnet://eternalfantasy.org:3334
- Play in Browser: LociTerm
- Website: https://www.eternalfantasy.org/
Server Info
Codebase: TMI-2 1.3-pre2(modified)
Genre: Fantasy
Players online: 2 [3]
Uptime: 212 days
Created: 1995
Status: Alpha
Server Location: 🇺🇸 United States of America (MSSP)
Language: English
Protocol Support
MUD-specific protocols detected via MSSP flags or Telnet negotiation.
MSSP: Yes (MSSP)
GMCP: Yes (MSSP)
MSDP: No
MCCP: No
MCCP2: No
MXP: Negotiated
MSP: No
MCP: No
ZMP: Negotiated
Telnet Fingerprint
This fingerprint is shared by 16 other servers.
Options offered by server: GMCP, MSSP, ZMP
Options requested from client: MXP, NAWS, NEW_ENVIRON, TTYPE
The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.
Show JSON
{
"server-probe": {
"fingerprint": "909f753421a0f55b",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MSSP",
"ZMP"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MSDP",
"MSP",
"MXP",
"SGA",
"STATUS"
],
"requested-options": [
"MXP",
"NAWS",
"NEW_ENVIRON",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nWho wishes to travel beyond the sealed gate? ",
"banner_before_return": " _______________________________________________________\r\n / + . .\\ . _ . / . . * \\\r\n | . ;\\_ . \\ * /@\\ . / . _/; .. |\r\n | * \\ \\__ . \\ . @ / __/ / . |\r\n | . . \\_* \\ + /^\\__@__/^\\ . / *_/ . . |\r\n | . \\__\\ |@__{*}__@| /__/ . |\r\n |Welcome to . . V \\|/ V . * . |\r\n | The Eternal . ||| . + . . * |\r\n | . * FFFF AAA N . N ||| AAA SSS Y Y . |\r\n | . F A A NN N ||| A . A S . .Y Y . . |\r\n | . . FF AAAAA N N N ||| AAAAA SS * Y |\r\n | . F A A N NN ||| A A . S Y * + |\r\n | + F . A A N . N ||| A * A SSS . Y . |\r\n | . ________--------|||--------________ . + |\r\n |__-------- \\|/ --------__|\r\n | A MUD Based On V |\r\n | Final Fantasy, The Videogame Series Made By SquareEnix|\r\n | Admin Contact: tim@eternalfantasy.org |\r\n | Website: https://www.eternalfantasy.org/ |\r\n | Status: [ALPHA] revamping quests |\r\n \\_______________________________________________________/\r\nNames from popular media (including books, games, movies, etc) aren't allowed.\r\n Make a NEW and unique name.\r\nNames are not titles, nicknames, descriptives, or combinations of words.\r\nIf you want to learn about TEF before taking the time to think of a good name,\r\nlog in as Guest or look at the web site.\r\n\r\nThe Eternal Fantasy is running the TMI-2 1.3-pre2(modified) mudlib on FluffOS v2.27\r\n\r\nCurrent users: Tim, and Enker.\r\n\r\nWho wishes to travel beyond the sealed gate? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "utf-8",
"mssp": {
"ANSI": "1",
"CLASSES": "47",
"CODEBASE": "TMI-2 1.3-pre2(modified)",
"CONTACT": "tim@eternalfantasy.org",
"CREATED": "1995",
"FAMILY": "LPMud",
"GENRE": "Fantasy",
"GMCP": "1",
"HOSTNAME": "eternalfantasy.org",
"ICON": "https://www.eternalfantasy.org/favicon.ico",
"INTERMUD": "Grapevine",
"IP": "104.154.76.197",
"LANGUAGE": "English",
"LEVELS": "99",
"LOCATION": "United States of America",
"MCCP": "0",
"MULTIPLAYING": "None",
"NAME": "The Eternal Fantasy",
"PLAYER CLANS": "1",
"PLAYERKILLING": "Restricted",
"PLAYERS": "2",
"PORT": "3333",
"QUEST SYSTEM": [
"Automated",
"Integrated"
],
"RACES": "10",
"ROLEPLAYING": "Encouraged",
"ROOMS": "11838",
"SSL": "3334",
"STATUS": "Alpha",
"SUBGENRE": "Final Fantasy",
"UPTIME": "1752897842",
"WEBSITE": "https://www.eternalfantasy.org/",
"WORLD ORIGINALITY": "All Original"
},
"option_states": {
"environ_requested": [
{
"name": "*",
"type": "VAR"
},
{
"name": "*",
"type": "USERVAR"
}
],
"server_offered": {
"AARDWOLF": false,
"ATCP": false,
"GMCP": true,
"MSDP": false,
"MSP": false,
"MSSP": true,
"MXP": false,
"ZMP": true
},
"server_requested": {
"AARDWOLF": false,
"ATCP": false,
"GMCP": false,
"MSDP": false,
"MSP": false,
"MSSP": false,
"MXP": true,
"NAWS": true,
"NEW_ENVIRON": true,
"TTYPE": true,
"ZMP": false
}
},
"scan_type": "quick",
"timing": {
"probe": 0.5032918453216553,
"total": 5.049440860748291
}
}
},
"sessions": [
{
"connected": "2026-02-16T22:14:10.186946+00:00",
"host": "eternalfantasy.org",
"ip": "104.154.76.197",
"port": 3334
}
]
}
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 eternalfantasy.org 3334
Show Logfile
DEBUG client.py:1061 Fingerprint client: host=eternalfantasy.org port=3334
INFO client_base.py:183 Connected to <Peer 104.154.76.197 3334>
DEBUG stream_writer.py:3200 pending_option[WILL + ZMP] = True
DEBUG stream_writer.py:958 send IAC WILL ZMP
DEBUG stream_writer.py:3200 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:958 send IAC WILL MSDP
DEBUG stream_writer.py:3200 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:958 send IAC WILL MSSP
DEBUG stream_writer.py:3200 pending_option[WILL + AARDWOLF] = True
DEBUG stream_writer.py:958 send IAC WILL AARDWOLF
DEBUG stream_writer.py:3200 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:958 send IAC WILL MXP
DEBUG stream_writer.py:3200 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:958 send IAC WILL GMCP
DEBUG stream_writer.py:3200 pending_option[WILL + ATCP] = True
DEBUG stream_writer.py:958 send IAC WILL ATCP
DEBUG stream_writer.py:3200 pending_option[WILL + MSP] = True
DEBUG stream_writer.py:958 send IAC WILL MSP
DEBUG stream_writer.py:3200 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:958 send IAC DO ZMP
DEBUG stream_writer.py:3200 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:958 send IAC DO MSDP
DEBUG stream_writer.py:3200 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:958 send IAC DO MSSP
DEBUG stream_writer.py:3200 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:958 send IAC DO AARDWOLF
DEBUG stream_writer.py:3200 pending_option[DO + MXP] = True
DEBUG stream_writer.py:958 send IAC DO MXP
DEBUG stream_writer.py:3200 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:958 send IAC DO GMCP
DEBUG stream_writer.py:3200 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:958 send IAC DO ATCP
DEBUG stream_writer.py:3200 pending_option[DO + MSP] = True
DEBUG stream_writer.py:958 send IAC DO MSP
DEBUG stream_writer.py:715 recv IAC DO TTYPE
DEBUG stream_writer.py:1778 handle_do(TTYPE)
DEBUG stream_writer.py:3200 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:958 send IAC WILL TTYPE
DEBUG stream_writer.py:3200 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3200 local_option[TTYPE] = True
DEBUG stream_writer.py:3200 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:715 recv IAC DO NAWS
DEBUG stream_writer.py:1778 handle_do(NAWS)
DEBUG stream_writer.py:3200 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:958 send IAC WILL NAWS
DEBUG stream_writer.py:2372 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3200 local_option[NAWS] = True
DEBUG stream_writer.py:3200 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:715 recv IAC DO MXP
DEBUG stream_writer.py:1778 handle_do(MXP)
DEBUG stream_writer.py:932 skip WILL MXP; pending_option = True
DEBUG stream_writer.py:3200 local_option[MXP] = True
DEBUG stream_writer.py:3200 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:715 recv IAC WILL MSSP
DEBUG stream_writer.py:1919 handle_will(MSSP)
DEBUG stream_writer.py:932 skip DO MSSP; pending_option = True
DEBUG stream_writer.py:3200 remote_option[MSSP] = True
DEBUG stream_writer.py:3200 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:715 recv IAC WILL ZMP
DEBUG stream_writer.py:1919 handle_will(ZMP)
DEBUG stream_writer.py:932 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:3200 remote_option[ZMP] = True
DEBUG stream_writer.py:3200 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:715 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1778 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3200 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:958 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3200 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3200 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3200 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:715 recv IAC WILL GMCP
DEBUG stream_writer.py:1919 handle_will(GMCP)
DEBUG stream_writer.py:932 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:3200 remote_option[GMCP] = True
DEBUG stream_writer.py:3200 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:715 recv IAC DONT ZMP
DEBUG stream_writer.py:1882 handle_dont(ZMP)
DEBUG stream_writer.py:3200 pending_option[WILL + ZMP] = False
DEBUG stream_writer.py:3200 local_option[ZMP] = False
DEBUG stream_writer.py:715 recv IAC DONT MSDP
DEBUG stream_writer.py:1882 handle_dont(MSDP)
DEBUG stream_writer.py:3200 pending_option[WILL + MSDP] = False
DEBUG stream_writer.py:3200 local_option[MSDP] = False
DEBUG stream_writer.py:715 recv IAC DONT MSSP
DEBUG stream_writer.py:1882 handle_dont(MSSP)
DEBUG stream_writer.py:3200 pending_option[WILL + MSSP] = False
DEBUG stream_writer.py:3200 local_option[MSSP] = False
DEBUG stream_writer.py:715 recv IAC DONT AARDWOLF
DEBUG stream_writer.py:1882 handle_dont(AARDWOLF)
DEBUG stream_writer.py:3200 pending_option[WILL + AARDWOLF] = False
DEBUG stream_writer.py:3200 local_option[AARDWOLF] = False
DEBUG stream_writer.py:715 recv IAC DONT GMCP
DEBUG stream_writer.py:1882 handle_dont(GMCP)
DEBUG stream_writer.py:3200 pending_option[WILL + GMCP] = False
DEBUG stream_writer.py:3200 local_option[GMCP] = False
DEBUG stream_writer.py:715 recv IAC DONT ATCP
DEBUG stream_writer.py:1882 handle_dont(ATCP)
DEBUG stream_writer.py:3200 pending_option[WILL + ATCP] = False
DEBUG stream_writer.py:3200 local_option[ATCP] = False
DEBUG stream_writer.py:715 recv IAC DONT MSP
DEBUG stream_writer.py:1882 handle_dont(MSP)
DEBUG stream_writer.py:3200 pending_option[WILL + MSP] = False
DEBUG stream_writer.py:3200 local_option[MSP] = False
DEBUG stream_writer.py:715 recv IAC WONT MSDP
DEBUG stream_writer.py:2053 handle_wont(MSDP)
DEBUG stream_writer.py:3200 remote_option[MSDP] = False
DEBUG stream_writer.py:3200 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:707 begin sub-negotiation SB MSSP
DEBUG stream_writer.py:694 sub-negotiation cmd MSSP SE completion byte
DEBUG stream_writer.py:2093 [SB + MSSP] unsolicited
DEBUG stream_writer.py:1681 MSSP: {'PLAYERS': '2', 'LEVELS': '99', 'PORT': '3333', 'LOCATION': 'United States of America',
'INTERMUD': 'Grapevine', 'PLAYERKILLING': 'Restricted', 'HOSTNAME': 'eternalfantasy.org', 'SSL': '3334', 'RACES': '10',
'GENRE': 'Fantasy', 'LANGUAGE': 'English', 'CONTACT': 'tim@eternalfantasy.org', 'QUEST SYSTEM': ['Automated', 'Integrated'],
'PLAYER CLANS': '1', 'FAMILY': 'LPMud', 'IP': '104.154.76.197', 'ROLEPLAYING': 'Encouraged', 'CREATED': '1995', 'CLASSES':
'47', 'NAME': 'The Eternal Fantasy', 'UPTIME': '1752897842', 'WORLD ORIGINALITY': 'All Original', 'ROOMS': '11838', 'STATUS':
'Alpha', 'GMCP': '1', 'CODEBASE': 'TMI-2 1.3-pre2(modified)', 'MULTIPLAYING': 'None', 'WEBSITE':
'https://www.eternalfantasy.org/', 'ICON': 'https://www.eternalfantasy.org/favicon.ico', 'MCCP': '0', 'ANSI': '1', 'SUBGENRE':
'Final Fantasy'}
DEBUG stream_writer.py:715 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:2053 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3200 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3200 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:715 recv IAC WONT MXP
DEBUG stream_writer.py:2053 handle_wont(MXP)
DEBUG stream_writer.py:3200 remote_option[MXP] = False
DEBUG stream_writer.py:3200 pending_option[DO + MXP] = False
DEBUG stream_writer.py:715 recv IAC WONT ATCP
DEBUG stream_writer.py:2053 handle_wont(ATCP)
DEBUG stream_writer.py:3200 remote_option[ATCP] = False
DEBUG stream_writer.py:3200 pending_option[DO + ATCP] = False
DEBUG stream_writer.py:715 recv IAC WONT MSP
DEBUG stream_writer.py:2053 handle_wont(MSP)
DEBUG stream_writer.py:3200 remote_option[MSP] = False
DEBUG stream_writer.py:3200 pending_option[DO + MSP] = False
DEBUG stream_writer.py:707 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:694 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3200 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2267 recv TTYPE SEND: b''
DEBUG stream_writer.py:2280 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:707 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:694 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3200 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2315 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2338 env send: LANG='C', TERM='xterm-256color', LINES=25, COLUMNS=80, COLORTERM=''
DEBUG client_base.py:506 negotiation complete after 0.03s.
DEBUG stream_writer.py:1331 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:3200 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:958 send IAC DO BINARY
DEBUG stream_writer.py:3200 pending_option[DO + SGA] = True
DEBUG stream_writer.py:958 send IAC DO SGA
DEBUG stream_writer.py:3200 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:958 send IAC DO ECHO
DEBUG stream_writer.py:3200 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:958 send IAC DO STATUS
DEBUG stream_writer.py:3200 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:958 send IAC DO CHARSET
DEBUG stream_writer.py:3200 pending_option[DO + EOR] = True
DEBUG stream_writer.py:958 send IAC DO EOR
DEBUG stream_writer.py:3200 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:958 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:715 recv IAC WONT BINARY
DEBUG stream_writer.py:2053 handle_wont(BINARY)
DEBUG stream_writer.py:3200 remote_option[BINARY] = False
DEBUG stream_writer.py:3200 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:715 recv IAC WONT SGA
DEBUG stream_writer.py:2053 handle_wont(SGA)
DEBUG stream_writer.py:3200 remote_option[SGA] = False
DEBUG stream_writer.py:3200 pending_option[DO + SGA] = False
DEBUG stream_writer.py:715 recv IAC WONT STATUS
DEBUG stream_writer.py:2053 handle_wont(STATUS)
DEBUG stream_writer.py:3200 remote_option[STATUS] = False
DEBUG stream_writer.py:3200 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:715 recv IAC WONT CHARSET
DEBUG stream_writer.py:2053 handle_wont(CHARSET)
DEBUG stream_writer.py:3200 remote_option[CHARSET] = False
DEBUG stream_writer.py:3200 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:715 recv IAC WONT EOR
DEBUG stream_writer.py:2053 handle_wont(EOR)
DEBUG stream_writer.py:3200 remote_option[EOR] = False
DEBUG stream_writer.py:3200 pending_option[DO + EOR] = False
DEBUG stream_writer.py:715 recv IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:2053 handle_wont(COM_PORT_OPTION)
DEBUG stream_writer.py:3200 remote_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:3200 pending_option[DO + COM_PORT_OPTION] = False
INFO fingerprinting.py:745 connection for server fingerprint 909f753421a0f55b
INFO client_base.py:114 Connection closed to <Peer 104.154.76.197 3334>
TimMUD (timmud.com:5555)
Connection Banner:
Server URLs
- Telnet: telnet://timmud.com:5555
- Website: https://timmud.com/
Server Info
Players online: 1 [4]
Uptime: 892 days
Discord: https://discord.gg/5GtCY52
Server Location: 🇺🇸 United States (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: Negotiated
MSP: No
MCP: No
ZMP: Negotiated
Telnet Fingerprint
This fingerprint is shared by 16 other servers.
Options offered by server: GMCP, MSSP, ZMP
Options requested from client: MXP, NAWS, NEW_ENVIRON, TTYPE
The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.
Show JSON
{
"server-probe": {
"fingerprint": "909f753421a0f55b",
"fingerprint-data": {
"offered-options": [
"GMCP",
"MSSP",
"ZMP"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"ECHO",
"EOR",
"MSDP",
"MSP",
"MXP",
"SGA",
"STATUS"
],
"requested-options": [
"MXP",
"NAWS",
"NEW_ENVIRON",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\r\nSorry, you must supply a name for your character.\r\n\r\nBy what name do you wish to be known? ",
"banner_before_return": "Welcome to TimMUD.\r\nIt's here for coding on, use 'help new_wiz' to learn about the wiz commands.\r\nIt's basically stock TMI-2, eventually I'd like to release an update to that\r\nwith bugs fixed, but mostly this is for testing without impacting a game.\r\nCreate a character and be auto-wizzed, or log in as guest.\r\n\r\nTimMUD is running the TMI-2 1.4alpha mudlib on FluffOS v2.27\r\n\r\nCurrent users: Tim.\r\n\r\nBy what name do you wish to be known? ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "ascii",
"mssp": {
"DISCORD": "https://discord.gg/5GtCY52",
"ICON": "https://timmud.com/favicon.ico",
"MCCP": "0",
"NAME": "TimMUD",
"PLAYERS": "1",
"UPTIME": "1693953529",
"WEBSITE": "https://timmud.com/"
},
"option_states": {
"environ_requested": [
{
"name": "*",
"type": "VAR"
},
{
"name": "*",
"type": "USERVAR"
}
],
"server_offered": {
"GMCP": true,
"MSSP": true,
"ZMP": true
},
"server_requested": {
"MXP": true,
"NAWS": true,
"NEW_ENVIRON": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.5100927352905273,
"total": 5.114879608154297
}
}
},
"sessions": [
{
"connected": "2026-02-14T17:09:34.165510+00:00",
"host": "timmud.com",
"ip": "104.154.76.197",
"port": 5555
}
]
}
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 timmud.com 5555
Show Logfile
DEBUG client.py:965 Fingerprint client: host=timmud.com port=5555
INFO client_base.py:175 Connected to <Peer 104.154.76.197 5555>
DEBUG client_base.py:492 negotiation complete after 0.00s.
DEBUG stream_writer.py:707 recv IAC DO TTYPE
DEBUG stream_writer.py:1770 handle_do(TTYPE)
DEBUG stream_writer.py:3174 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:950 send IAC WILL TTYPE
DEBUG stream_writer.py:3174 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3174 local_option[TTYPE] = True
DEBUG stream_writer.py:3174 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:707 recv IAC DO NAWS
DEBUG stream_writer.py:1770 handle_do(NAWS)
DEBUG stream_writer.py:3174 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:950 send IAC WILL NAWS
DEBUG stream_writer.py:2346 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3174 local_option[NAWS] = True
DEBUG stream_writer.py:3174 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:707 recv IAC DO MXP
DEBUG stream_writer.py:1770 handle_do(MXP)
DEBUG stream_writer.py:3174 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:950 send IAC WILL MXP
DEBUG stream_writer.py:3174 pending_option[SB + MXP] = True
DEBUG stream_writer.py:3174 local_option[MXP] = True
DEBUG stream_writer.py:3174 pending_option[WILL + MXP] = False
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 ZMP
DEBUG stream_writer.py:723 WILL ZMP unsolicited
DEBUG stream_writer.py:1900 handle_will(ZMP)
DEBUG stream_writer.py:3174 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:950 send IAC DO ZMP
DEBUG stream_writer.py:3174 remote_option[ZMP] = True
DEBUG stream_writer.py:3174 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:707 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1770 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3174 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:950 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3174 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3174 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3174 pending_option[WILL + NEW_ENVIRON] = 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 TTYPE
DEBUG stream_writer.py:686 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2241 recv TTYPE SEND: b''
DEBUG stream_writer.py:2254 send IAC SB TTYPE IS b'xterm-256color' IAC SE
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': 'TimMUD', 'UPTIME': '1693953529', 'PLAYERS': '1', 'MCCP': '0', 'WEBSITE':
'https://timmud.com/', 'ICON': 'https://timmud.com/favicon.ico', 'DISCORD': 'https://discord.gg/5GtCY52'}
DEBUG stream_writer.py:699 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:686 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2289 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2312 env send: LANG='C', TERM='xterm-256color', LINES=25, COLUMNS=80, COLORTERM=''
DEBUG stream_writer.py:1323 IAC GA: Go-Ahead (unhandled).
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 + 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
DEBUG stream_writer.py:707 recv IAC WONT BINARY
DEBUG stream_writer.py:2025 handle_wont(BINARY)
DEBUG stream_writer.py:3174 remote_option[BINARY] = False
DEBUG stream_writer.py:3174 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:707 recv IAC WONT SGA
DEBUG stream_writer.py:2025 handle_wont(SGA)
DEBUG stream_writer.py:3174 remote_option[SGA] = False
DEBUG stream_writer.py:3174 pending_option[DO + SGA] = False
DEBUG stream_writer.py:707 recv IAC WONT STATUS
DEBUG stream_writer.py:2025 handle_wont(STATUS)
DEBUG stream_writer.py:3174 remote_option[STATUS] = False
DEBUG stream_writer.py:3174 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:707 recv IAC WONT CHARSET
DEBUG stream_writer.py:2025 handle_wont(CHARSET)
DEBUG stream_writer.py:3174 remote_option[CHARSET] = False
DEBUG stream_writer.py:3174 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:707 recv IAC WONT EOR
DEBUG stream_writer.py:2025 handle_wont(EOR)
DEBUG stream_writer.py:3174 remote_option[EOR] = False
DEBUG stream_writer.py:3174 pending_option[DO + EOR] = False
DEBUG stream_writer.py:707 recv IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:2025 handle_wont(COM_PORT_OPTION)
DEBUG stream_writer.py:3174 remote_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:3174 pending_option[DO + COM_PORT_OPTION] = False
DEBUG stream_writer.py:707 recv IAC WONT MSDP
DEBUG stream_writer.py:2025 handle_wont(MSDP)
DEBUG stream_writer.py:3174 remote_option[MSDP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:707 recv IAC WONT MSP
DEBUG stream_writer.py:2025 handle_wont(MSP)
DEBUG stream_writer.py:3174 remote_option[MSP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MSP] = False
DEBUG stream_writer.py:707 recv IAC WONT MXP
DEBUG stream_writer.py:2025 handle_wont(MXP)
DEBUG stream_writer.py:3174 remote_option[MXP] = False
DEBUG stream_writer.py:3174 pending_option[DO + MXP] = False
DEBUG stream_writer.py:707 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:2025 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3174 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3174 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:707 recv IAC WONT ATCP
DEBUG stream_writer.py:2025 handle_wont(ATCP)
DEBUG stream_writer.py:3174 remote_option[ATCP] = False
DEBUG stream_writer.py:3174 pending_option[DO + ATCP] = False
INFO fingerprinting.py:746 connection for server fingerprint 909f753421a0f55b
INFO client_base.py:106 Connection closed to <Peer 104.154.76.197 5555>