Discworld

discworld.starturtle.net:4242

Server Info

  • Codebase: Discworld lib (current)

  • Family: LPMud

  • Genre: Fantasy

  • Gameplay: Roleplaying, Player versus Player, Hack and Slash, Adventure

  • Players online: 77 [1]

  • Created: 1991

  • Status: Live

  • Website: http://discworld.starturtle.net

  • Location: United Kingdom

Protocol Support

MUD-specific protocols detected via MSSP flags or Telnet negotiation. See the glossary for definitions.

  • MSSP: Yes (MSSP)

  • GMCP: Negotiated

  • MSDP: No

  • MCCP: Yes (MSSP)

  • MCCP2: No

  • MXP: Yes (MSSP)

  • MSP: No

  • MCP: No

  • ZMP: No

Telnet Fingerprint

312c689f1ba144a9…

This fingerprint is shared by 1 other server.

Options requested from client: NAWS, NEW_ENVIRON, TTYPE

Data source: 312c689f1ba144a9/da4afbf127c0d2ce.json

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

{
  "server-probe": {
    "fingerprint": "312c689f1ba144a9",
    "fingerprint-data": {
      "offered-options": [],
      "probed-protocol": "server",
      "refused-options": [
        "BINARY",
        "CHARSET",
        "COM_PORT",
        "ECHO",
        "EOR",
        "SGA",
        "STATUS"
      ],
      "requested-options": [
        "NAWS",
        "NEW_ENVIRON",
        "TTYPE"
      ],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "There is no player by the name .\r\n\r\nPress enter to continue ",
      "banner_before_return": "LPmud version : DW OS v1.02 on port 4242.\r\nWelcome to Discworld: the stuff of which dreams are made.\r\n\r\nSilently, slowly and surely, Great A'Tuin paddles through space, its\r\ngreat eyes surveying the dark, empty wastes before and behind it.\r\nStanding on A'Tuin's great back are four enormous elephants, straining\r\nunder the colossal weight of the Discworld itself.  It sparkles with\r\nmagic, reflects the light of the stars and generally fails to be as\r\nunobtrusive as possible.\r\n\r\nA large, floppy, black hat recedes into the distance, somehow looking\r\nsatisfied at what it has left behind.\r\n\r\nQ - Quit\r\nM - Print this menu again\r\nD - Delete your character\r\nR - Request a temporary password\r\nU - Short list of who is on-line\r\nL - Short list of liaisons on-line\r\nP - Uptime\r\nF - Finger someone\r\nN - New character\r\nG - Guest character\r\n\r\nOr, enter your current character's name\r\n\r\nYour choice: ",
      "encoding": "ascii",
      "mssp": {
        "ANSI": "1",
        "CODEBASE": "Discworld lib (current)",
        "CREATED": "1991",
        "FAMILY": "LPMud",
        "GAMEPLAY": [
          "Roleplaying",
          "Player versus Player",
          "Hack and Slash",
          "Adventure"
        ],
        "GENRE": "Fantasy",
        "HOSTNAME": "discworld.starturtle.net",
        "INTERMUD": [
          "IMC2",
          "I3"
        ],
        "IP": "82.68.167.69",
        "LANGUAGE": "English",
        "LOCATION": "United Kingdom",
        "MCCP": "1",
        "MULTIPLAYING": "None",
        "MXP": "1",
        "NAME": "Discworld",
        "PAY FOR PERKS": "0",
        "PAY TO PLAY": "0",
        "PLAYERKILLING": "Restricted",
        "PLAYERS": "77",
        "PORT": [
          "23",
          "4242"
        ],
        "ROLEPLAYING": "Accepted",
        "STATUS": "Live",
        "SUBGENRE": "Discworld",
        "TRAINING SYSTEM": "Both",
        "UPTIME": "1765157464",
        "VT100": "1",
        "WEBSITE": "http://discworld.starturtle.net",
        "WORLD ORIGINALITY": "All Original",
        "WORLDS": "1"
      },
      "option_states": {
        "environ_requested": [
          {
            "name": "*",
            "type": "VAR"
          },
          {
            "name": "*",
            "type": "USERVAR"
          }
        ],
        "server_offered": {
          "0x55": false,
          "0x56": false,
          "0x5d": false,
          "GMCP": true,
          "MSSP": true
        },
        "server_requested": {
          "0x5b": false,
          "NAWS": true,
          "NEW_ENVIRON": true,
          "TTYPE": true
        }
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.5026249885559082,
        "total": 3.1413707733154297
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-02-08T16:59:31.065989+00:00",
      "host": "discworld.starturtle.net",
      "ip": "82.68.167.69",
      "port": 4242
    }
  ]
}

Connection Log

Debug-level log of the Telnet negotiation session, showing each IAC (Interpret As Command) exchange between client and server.

DEBUG client.py:770 Fingerprint client: host=discworld.starturtle.net port=4242
INFO client_base.py:174 Connected to <Peer 82.68.167.69 4242>
DEBUG stream_writer.py:692 recv IAC DO TTYPE
DEBUG stream_writer.py:1733 handle_do(TTYPE)
DEBUG stream_writer.py:3030 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:933 send IAC WILL TTYPE
DEBUG stream_writer.py:3030 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3030 local_option[TTYPE] = True
DEBUG stream_writer.py:3030 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:692 recv IAC DO NAWS
DEBUG stream_writer.py:1733 handle_do(NAWS)
DEBUG stream_writer.py:3030 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:933 send IAC WILL NAWS
DEBUG stream_writer.py:2300 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3030 local_option[NAWS] = True
DEBUG stream_writer.py:3030 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:692 recv IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:708 WILL MCCP2_COMPRESS unsolicited
DEBUG stream_writer.py:1863 handle_will(MCCP2_COMPRESS)
DEBUG stream_writer.py:3030 remote_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:933 send IAC DONT MCCP2_COMPRESS
WARNING stream_writer.py:1968 Unhandled: WILL MCCP2_COMPRESS.
DEBUG stream_writer.py:692 recv IAC DO MXP
DEBUG stream_writer.py:1733 handle_do(MXP)
DEBUG stream_writer.py:3030 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:933 send IAC WILL MXP
DEBUG stream_writer.py:3030 local_option[MXP] = True
DEBUG stream_writer.py:3030 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:692 recv IAC WILL MSSP
DEBUG stream_writer.py:708 WILL MSSP unsolicited
DEBUG stream_writer.py:1863 handle_will(MSSP)
DEBUG stream_writer.py:3030 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:933 send IAC DO MSSP
DEBUG stream_writer.py:3030 remote_option[MSSP] = True
DEBUG stream_writer.py:3030 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:692 recv IAC WILL ZMP
DEBUG stream_writer.py:708 WILL ZMP unsolicited
DEBUG stream_writer.py:1863 handle_will(ZMP)
DEBUG stream_writer.py:3030 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:933 send IAC DO ZMP
DEBUG stream_writer.py:3030 remote_option[ZMP] = True
DEBUG stream_writer.py:3030 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:692 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1733 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3030 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:933 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3030 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3030 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3030 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:692 recv IAC WILL GMCP
DEBUG stream_writer.py:708 WILL GMCP unsolicited
DEBUG stream_writer.py:1863 handle_will(GMCP)
DEBUG stream_writer.py:3030 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:933 send IAC DO GMCP
DEBUG stream_writer.py:3030 remote_option[GMCP] = True
DEBUG stream_writer.py:3030 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:684 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:671 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3030 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2197 recv TTYPE SEND: b''
DEBUG stream_writer.py:2208 send IAC SB TTYPE IS b'VT100' IAC SE
DEBUG stream_writer.py:692 recv IAC WILL MCCP_COMPRESS
DEBUG stream_writer.py:708 WILL MCCP_COMPRESS unsolicited
DEBUG stream_writer.py:1863 handle_will(MCCP_COMPRESS)
DEBUG stream_writer.py:3030 remote_option[MCCP_COMPRESS] = False
DEBUG stream_writer.py:933 send IAC DONT MCCP_COMPRESS
WARNING stream_writer.py:1968 Unhandled: WILL MCCP_COMPRESS.
DEBUG stream_writer.py:684 begin sub-negotiation SB MXP
DEBUG stream_writer.py:671 sub-negotiation cmd MXP SE completion byte
DEBUG stream_writer.py:2025 [SB + MXP] unsolicited
DEBUG stream_writer.py:1646 MXP: b''
DEBUG stream_writer.py:684 begin sub-negotiation SB MSSP
DEBUG stream_writer.py:671 sub-negotiation cmd MSSP SE completion byte
DEBUG stream_writer.py:2025 [SB + MSSP] unsolicited
DEBUG stream_writer.py:1637 MSSP: {'NAME': 'Discworld', 'PLAYERS': '79', 'UPTIME': '1765157464', 'WORLDS': '1', 'FAMILY': 'LPMud',
    'IP': '82.68.167.69', 'ROLEPLAYING': 'Accepted', 'CREATED': '1991', 'PAY TO PLAY': '0', 'PAY FOR PERKS': '0', 'PORT': ['23',
    '4242'], 'WORLD ORIGINALITY': 'All Original', 'TRAINING SYSTEM': 'Both', 'LOCATION': 'United Kingdom', 'STATUS': 'Live',
    'CODEBASE': 'Discworld lib (current)', 'MXP': '1', 'MULTIPLAYING': 'None', 'WEBSITE': 'http://discworld.starturtle.net',
    'INTERMUD': ['IMC2', 'I3'], 'PLAYERKILLING': 'Restricted', 'HOSTNAME': 'discworld.starturtle.net', 'GENRE': 'Fantasy',
    'GAMEPLAY': ['Roleplaying', 'Player versus Player', 'Hack and Slash', 'Adventure'], 'LANGUAGE': 'English', 'VT100': '1',
    'MCCP': '1', 'ANSI': '1', 'SUBGENRE': 'Discworld'}
DEBUG stream_writer.py:684 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:671 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3030 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2243 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2266 env send: LANG='C', TERM='VT100', LINES=25, COLUMNS=80, COLORTERM=''
DEBUG client_base.py:460 negotiation complete after 0.07s.
DEBUG stream_writer.py:1287 IAC GA: Go-Ahead (unhandled).
DEBUG stream_writer.py:3030 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:933 send IAC DO BINARY
DEBUG stream_writer.py:3030 pending_option[DO + SGA] = True
DEBUG stream_writer.py:933 send IAC DO SGA
DEBUG stream_writer.py:3030 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:933 send IAC DO ECHO
DEBUG stream_writer.py:3030 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:933 send IAC DO STATUS
DEBUG stream_writer.py:3030 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:933 send IAC DO CHARSET
DEBUG stream_writer.py:3030 pending_option[DO + EOR] = True
DEBUG stream_writer.py:933 send IAC DO EOR
DEBUG stream_writer.py:3030 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:933 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:3030 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:933 send IAC DO MSDP
DEBUG stream_writer.py:3030 pending_option[DO + MSP] = True
DEBUG stream_writer.py:933 send IAC DO MSP
DEBUG stream_writer.py:3030 pending_option[DO + MXP] = True
DEBUG stream_writer.py:933 send IAC DO MXP
DEBUG stream_writer.py:3030 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:933 send IAC DO AARDWOLF
DEBUG stream_writer.py:3030 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:933 send IAC DO ATCP
DEBUG stream_writer.py:692 recv IAC WONT BINARY
DEBUG stream_writer.py:1985 handle_wont(BINARY)
DEBUG stream_writer.py:3030 remote_option[BINARY] = False
DEBUG stream_writer.py:3030 pending_option[DO + BINARY] = False
DEBUG stream_writer.py:692 recv IAC WONT SGA
DEBUG stream_writer.py:1985 handle_wont(SGA)
DEBUG stream_writer.py:3030 remote_option[SGA] = False
DEBUG stream_writer.py:3030 pending_option[DO + SGA] = False
DEBUG stream_writer.py:692 recv IAC WONT STATUS
DEBUG stream_writer.py:1985 handle_wont(STATUS)
DEBUG stream_writer.py:3030 remote_option[STATUS] = False
DEBUG stream_writer.py:3030 pending_option[DO + STATUS] = False
DEBUG stream_writer.py:692 recv IAC WONT CHARSET
DEBUG stream_writer.py:1985 handle_wont(CHARSET)
DEBUG stream_writer.py:3030 remote_option[CHARSET] = False
DEBUG stream_writer.py:3030 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:692 recv IAC WONT EOR
DEBUG stream_writer.py:1985 handle_wont(EOR)
DEBUG stream_writer.py:3030 remote_option[EOR] = False
DEBUG stream_writer.py:3030 pending_option[DO + EOR] = False
DEBUG stream_writer.py:692 recv IAC WONT COM_PORT_OPTION
DEBUG stream_writer.py:1985 handle_wont(COM_PORT_OPTION)
DEBUG stream_writer.py:3030 remote_option[COM_PORT_OPTION] = False
DEBUG stream_writer.py:3030 pending_option[DO + COM_PORT_OPTION] = False
DEBUG stream_writer.py:692 recv IAC WONT MSDP
DEBUG stream_writer.py:1985 handle_wont(MSDP)
DEBUG stream_writer.py:3030 remote_option[MSDP] = False
DEBUG stream_writer.py:3030 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:692 recv IAC WONT MSP
DEBUG stream_writer.py:1985 handle_wont(MSP)
DEBUG stream_writer.py:3030 remote_option[MSP] = False
DEBUG stream_writer.py:3030 pending_option[DO + MSP] = False
DEBUG stream_writer.py:692 recv IAC WONT MXP
DEBUG stream_writer.py:1985 handle_wont(MXP)
DEBUG stream_writer.py:3030 remote_option[MXP] = False
DEBUG stream_writer.py:3030 pending_option[DO + MXP] = False
DEBUG stream_writer.py:692 recv IAC WONT AARDWOLF
DEBUG stream_writer.py:1985 handle_wont(AARDWOLF)
DEBUG stream_writer.py:3030 remote_option[AARDWOLF] = False
DEBUG stream_writer.py:3030 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:692 recv IAC WONT ATCP
DEBUG stream_writer.py:1985 handle_wont(ATCP)
DEBUG stream_writer.py:3030 remote_option[ATCP] = False
DEBUG stream_writer.py:3030 pending_option[DO + ATCP] = False
INFO fingerprinting.py:746 connection for server fingerprint 909f753421a0f55b
INFO client_base.py:105 Connection closed to <Peer 82.68.167.69 4242>

Generated by telnetlib3-fingerprint

telnetlib3-fingerprint --loglevel=debug discworld.starturtle.net 4242