turf.org

Connection Banner:

<!-_​______________________________________________________________________________ \| . __,.​.--.--..,.​--._,.​.__ \| \| . . . __/^ ^ / \\ ^\\__ \| \| .. . .. /^ / / \| \\ \\ '\\_ \| \| .. ...:::.. .. / / \| \| \| \| \| ^\\ \| \| ...:::::::::::.. \| \| \| \\ / \\ \|\| \| .:::::::::::::. ___ \\.​_.___.._....______..._..__...__../\| \| .:::::::::::::::. / \\__ / / / / \| \| . .. :.:_​__________ :... .. . / \\__ / // / \| \| XXXXXXXXXXX\| ___/ \\ / // / \| \| XXXXXXXXXXX\| _​_____/ \\ _​_____ / / / \| \| : XXX\|:::. ___ ___ ___ _​___ \\ XXXXXXX\\ / / / \| \| . XXX\| :.XXX\| XXX\| XXXxXXXX\\ \\ XXXXXXXXX\| / / / \| \| . XXX\| XXX\| XXX\| XXXXXXXXX\| \\XXX/ XXX\|/ / /_​___ \| \| /XXX\| XXX\| XXX\| XXX\| XXX\| XXX\| /__ _- // \| \| / XXX\| XXX\| XXX\| XXX\| _​___XXX\|_​___ - / / \| \| / XXX\| XXX\| XXX\| XXX\| XXXXXXXXXXXX\| / // \| \| _​____/ XXX\| XXX\| XXX\| XXX\| XXXXXXXXXXXX\| / / \| \| / XXX\| XXXXXXXX\| XXX\| XXX\| \\ /-/ \| \| / XXX\| ^^^ XXX\| \\ // \| \|=​=================================================XXX\|=​======//=​=============\| \| XXXXXXXXXXXXX XXXXXXXXXXX XXXXXXX\| / \| \| XXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXX/ / \| \| XXXXXX Turf Version 4.24 \| \|_​____________________________________________________________________________\| A Mud/Talker based around the code of Merc and Envy, offering privacy for its residents, whilst retaining MUD features. Original Diku created by Hans Henrik Staerfeldt, Katja Nyboe, Tom Madsen, Michael Seifert and Sebastian Hammer. Further design and implementation by the Turf Development Team. Email turf@turf.org with comments/queries/complaints. For a dumb-link please put a ! at the end of your chosen name. Title screen courtesy of Nog's artistic genius. A few WWW pages can be found at http://www.turf.org/ A web interface can be found at http://turf.org:443/ Turf started up at 3.16:20 PM - Wed, 7 January 2026 The system time is 4.02:10 AM - Sat, 7 March 2026 By what name do you wish to be known? Sorry, names must be made of letters only. Name:

Server URLs

Server Info

  • Server Location: 🇮🇲 Isle of Man (GeoIP)

Protocol Support

MUD-specific protocols detected via MSSP flags or Telnet negotiation.

  • MSSP: No

  • GMCP: No

  • MSDP: No

  • MCCP: No

  • MCCP2: Negotiated

  • MXP: No

  • MSP: No

  • MCP: No

  • ZMP: No

Telnet Fingerprint

e6f30c38d43c0caf

This fingerprint is shared by 1 other server.

Options offered by server: EOR, MCCP2

The complete JSON record collected during the scan, including Telnet negotiation results and any MSSP metadata.

Show JSON
{
  "server-probe": {
    "fingerprint": "e6f30c38d43c0caf",
    "fingerprint-data": {
      "offered-options": [
        "EOR",
        "MCCP2"
      ],
      "probed-protocol": "server",
      "refused-options": [
        "AARDWOLF",
        "ATCP",
        "BINARY",
        "CHARSET",
        "COM_PORT",
        "ECHO",
        "GMCP",
        "MCCP3",
        "MSDP",
        "MSP",
        "MSSP",
        "MXP",
        "SGA",
        "STATUS",
        "ZMP"
      ],
      "requested-options": [],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "\u0019Sorry, names must be made of letters only.\n\rName: ",
      "banner_before_return": "\n\r<!-\b\b\b_______________________________________________________________________________\n\r|                .                             __,..--.--..,.--._,..__        |\n\r|   .            .         .               __/^   ^   /          \\   ^\\__     |\n\r|    ..          .       ..               /^   /    /        |   \\    \\  '\\_  |\n\r|      ..    ...:::..  ..                /   /    |     |    |  |     |    ^\\ |\n\r|        ...:::::::::::..                |   |    |    \\     /        \\      ||\n\r|         .:::::::::::::.            ___  \\._.___.._....______..._..__...__../|\n\r|        .:::::::::::::::.          /   \\__                     / / /  /      |\n\r| .  .. :.:___________  :... .. .  /       \\__                  / //  /       |\n\r|          XXXXXXXXXXX|        ___/           \\                / //  /        |\n\r|          XXXXXXXXXXX| ______/                \\     ______    / /  /         |\n\r|         :    XXX|:::.  ___   ___    ___ ____  \\   XXXXXXX\\  / /  /          |\n\r|       .      XXX|    :.XXX|  XXX|   XXXxXXXX\\  \\ XXXXXXXXX| / / /           |\n\r|     .        XXX|      XXX|  XXX|   XXXXXXXXX|  \\XXX/  XXX|/ / /____        |\n\r|             /XXX|      XXX|  XXX|   XXX|  XXX|   XXX|      /__ _- //        |\n\r|            / XXX|      XXX|  XXX|   XXX|     ____XXX|____     - / /         |\n\r|           /  XXX|      XXX|  XXX|   XXX|     XXXXXXXXXXXX|    / //          |\n\r|     _____/   XXX|      XXX|  XXX|   XXX|     XXXXXXXXXXXX|    / /           |\n\r|    /         XXX|       XXXXXXXX|   XXX|         XXX| \\      /-/            |\n\r|   /          XXX|             ^^^                XXX|  \\     //             |\n\r|==================================================XXX|=======//==============|\n\r|                 XXXXXXXXXXXXX   XXXXXXXXXXX  XXXXXXX|       /               |\n\r|          XXXXXXXXXXXXXX  XXXXXXXXXXXX XXXXXXXXXXXXX/       /                |\n\r|        XXXXXX                                            Turf Version 4.24  |\n\r|_____________________________________________________________________________|\n\r\n\r             A Mud/Talker based around the code of Merc and Envy,\n\r      offering privacy for its residents, whilst retaining MUD features.\n\r   Original Diku created by Hans Henrik Staerfeldt, Katja Nyboe, Tom Madsen,\n\r                   Michael Seifert and Sebastian Hammer.\n\r        Further design and implementation by the Turf Development Team.\n\r            Email turf@turf.org with comments/queries/complaints.\n\r        For a dumb-link please put a ! at the end of your chosen name.\n\r               Title screen courtesy of Nog's artistic genius.\n\r            A few WWW pages can be found at http://www.turf.org/\n\r            A web interface can be found at http://turf.org:443/\n\rTurf started up at  3.16:20 PM - Wed,  7 January 2026\n\rThe system time is  4.02:10 AM - Sat,  7 March 2026\n\rBy what name do you wish to be known? ",
      "dsr_replies": 0,
      "dsr_requests": 0,
      "encoding": "utf-8",
      "option_states": {
        "server_offered": {
          "0x55": false,
          "EOR": true,
          "MCCP2": true
        },
        "server_requested": {}
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.5045735836029053,
        "total": 11.262267827987671
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-03-07T04:02:25.349490+00:00",
      "host": "turf.org",
      "ip": "109.70.44.245",
      "port": 4000
    }
  ]
}

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 turf.org 4000
Show Logfile
DEBUG client.py:1193 Fingerprint client: host=turf.org port=4000
INFO client_base.py:186 Connected to <Peer 109.70.44.245 4000>
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: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 WILL MCCP_COMPRESS
DEBUG stream_writer.py:784 WILL MCCP_COMPRESS unsolicited
DEBUG stream_writer.py:1994 handle_will(MCCP_COMPRESS)
DEBUG stream_writer.py:3330 remote_option[MCCP_COMPRESS] = False
DEBUG stream_writer.py:1019 send IAC DONT MCCP_COMPRESS
DEBUG stream_writer.py:2131 Unhandled: WILL MCCP_COMPRESS.
DEBUG client_base.py:499 negotiation failed after 4.00s.
DEBUG client_base.py:505 failed-reply: 'WILL MXP, WILL ATCP, WILL MCCP3_COMPRESS, WILL GMCP, WILL AARDWOLF, WILL MSP, WILL MSDP,
    WILL MSSP, WILL ZMP, WILL MCCP2_COMPRESS, DO MXP, DO ATCP, DO MCCP3_COMPRESS, DO GMCP, DO AARDWOLF, DO MSP, DO MSDP, DO MSSP,
    DO ZMP'
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:727 IAC EOR: not a legal 2-byte cmd, treating as data
DEBUG stream_writer.py:1419 IAC EOR: End of Record (unhandled).
DEBUG stream_writer.py:3330 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:1019 send IAC DO BINARY
DEBUG stream_writer.py:3330 pending_option[DO + SGA] = True
DEBUG stream_writer.py:1019 send IAC DO SGA
DEBUG stream_writer.py:3330 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:1019 send IAC DO ECHO
DEBUG stream_writer.py:3330 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:1019 send IAC DO STATUS
DEBUG stream_writer.py:3330 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:1019 send IAC DO CHARSET
DEBUG stream_writer.py:3330 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:1019 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:993 skip DO MCCP3_COMPRESS; pending_option = True
DEBUG stream_writer.py:993 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:993 skip DO MSDP; pending_option = True
DEBUG stream_writer.py:993 skip DO MSSP; pending_option = True
DEBUG stream_writer.py:993 skip DO MSP; pending_option = True
DEBUG stream_writer.py:993 skip DO MXP; pending_option = True
DEBUG stream_writer.py:993 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:993 skip DO AARDWOLF; pending_option = True
DEBUG stream_writer.py:993 skip DO ATCP; pending_option = True
INFO fingerprinting.py:755 connection for server fingerprint e6f30c38d43c0caf
INFO client_base.py:118 Connection closed to <Peer 109.70.44.245 4000>