The Last Outpost
================
.. raw:: html
\p/ Welcome to The
O ________________
| | _ ___ | _____________________________
T ______| | / / | | | _ ___ _ _ _ ___ \
P \ | | / \ <_ | |__| / \ | | | | \ / \ / | <
| | | | |-| > | | | | | | | | |_/ | | <_ | >
| | | \__ | | _/ | | | | | | | | | | | > | /
| | |_______
_________| | \_/ \_/ | | \_/ _/ | >
| | \ |/ |____________________________<
| /______\ /____\|
P
__ | __ __ Last Outpost DikuMUD __ __ __
| |I_| |__| | Created by Hans Henrik Staerfeldt, Katja < |__| |__| |
| Nyboe, Tom Madsen, Michael Seifert, / > \
_______________| Sebastian Hammer, and |____ /\ _________
______________> The Last Outpost Honor Guard < __ ><\ ________
_____________/ <use credits command> \_
.. raw:: html
last-outpost.com:4000
⎘
🔒
*Along with exploring and advancing through the game world, The Last Outpost offers players the ability to lay claim to the zones that make up the land. Once claimed, a zone can be taxed, and the player making the claim gets to decide the player killing policy within the zone. Whoever claims the whol*
Server Info
-----------
- **Codebase**: LastOutpost 4.55
- **Family**: DikuMUD
- **Genre**: Fantasy
- **Gameplay**: Roleplaying, Player versus Player, Social, Player versus Environment, Hack and Slash, Questing, Adventure
- **Players online**: 0 [#scan]_
- **Created**: 1992
- **Status**: Live
- **Website**: `https://www.last-outpost.com `_
- **Location**: United States of America
- **Language**: English
- **TLS/SSL**: Port 4443
Protocol Support
----------------
MUD-specific protocols detected via MSSP flags or
Telnet negotiation.
- **MSSP**: :proto-yes:`Yes` (MSSP)
- **GMCP**: :proto-yes:`Yes` (MSSP)
- **MSDP**: :proto-no:`No`
- **MCCP**: :proto-no:`No`
- **MCCP2**: :proto-no:`No`
- **MXP**: :proto-no:`No`
- **MSP**: :proto-no:`No`
- **MCP**: :proto-no:`No`
- **ZMP**: :proto-no:`No`
Telnet Fingerprint
------------------
:ref:`27ff37c0c9d18f99... `
*This fingerprint is unique to this server.*
**Options offered by server**: ``CHARSET``, ``ECHO``, ``EOR``, ``SGA``
**Options requested from client**: ``NAWS``, ``NEW_ENVIRON``, ``TTYPE``
**Data source**: `27ff37c0c9d18f99/c698d58c58de08a9.json `_
The complete JSON record collected during the scan,
including Telnet negotiation results and any
MSSP metadata.
.. code-block:: json
{
"server-probe": {
"fingerprint": "27ff37c0c9d18f99",
"fingerprint-data": {
"offered-options": [
"CHARSET",
"ECHO",
"EOR",
"SGA"
],
"probed-protocol": "server",
"refused-options": [
"AUTHENTICATION",
"BINARY",
"BM",
"COM_PORT",
"DET",
"ENCRYPT",
"FORWARD_X",
"KERMIT",
"NAMS",
"NAOCRD",
"NAOFFD",
"NAOHTD",
"NAOHTS",
"NAOL",
"NAOLFD",
"NAOP",
"NAOVTD",
"NAOVTS",
"PRAGMA_HEARTBEAT",
"PRAGMA_LOGON",
"RCP",
"RCTE",
"RSP",
"SEND_URL",
"SSPI_LOGON",
"STATUS",
"SUPDUP",
"SUPDUPOUTPUT",
"SUPPRESS_LOCAL_ECHO",
"TLS",
"TN3270E",
"TTYLOC",
"VT3270REGIME",
"X3PAD",
"XAUTH"
],
"requested-options": [
"NAWS",
"NEW_ENVIRON",
"TTYPE"
]
},
"session_data": {
"banner_after_return": "_________| \u001b[31m| \u001b[33m\\_/ \u001b[33m\\_/ \u001b[33m| \u001b[33m| \u001b[33m\\_/ \u001b[33m_/ \u001b[33m| \u001b[31m> \r\n \u001b[34m| \u001b[31m| \u001b[31m\\ \u001b[31m|/ \u001b[31m|____________________________< \r\n \u001b[34m|\u001b[31m/______\\ \u001b[31m/____\\| \r\n \u001b[33mP \r\n \u001b[36m__ \u001b[34m| \u001b[36m__ \u001b[36m__ \u001b[0m\u001b[1m Last Outpost DikuMUD \u001b[0m \u001b[36m__ \u001b[36m__ \u001b[36m__ \r\n \u001b[36m| |I_| |__| | \u001b[0mCreated by Hans Henrik Staerfeldt, Katja \u001b[36m< |__| |__| |\r\n \u001b[36m | \u001b[0m Nyboe, Tom Madsen, Michael Seifert, \u001b[36m/\u001b[34m> \u001b[34m\\ \r\n \u001b[36m_______________| \u001b[0m Sebastian Hammer, and \u001b[36m|____\u001b[34m/\\\u001b[36m_________\r\n \u001b[36m______________> \u001b[0m\u001b[1m The Last Outpost Honor Guard \u001b[0m \u001b[36m < \u001b[36m__\u001b[34m><\\\u001b[36m________\r\n \u001b[36m_____________/ \u001b[0m\u001b[1m\u001b[30m \u001b[0m \u001b[36m \\_\u001b[34m",
"banner_before_return": "\r\n \u001b[33m\\p/ \u001b[0m Welcome to The \r\n \u001b[33mO \u001b[31m________________ \r\n \u001b[33m| \u001b[31m| \u001b[33m_ \u001b[33m___ \u001b[31m| \u001b[31m_____________________________ \r\n \u001b[34mT\u001b[31m______|\u001b[33m| \u001b[33m/ \u001b[33m/ \u001b[33m| \u001b[31m| \u001b[31m| \u001b[33m_ \u001b[33m___ \u001b[33m_ \u001b[33m_ \u001b[33m_ \u001b[33m___ \u001b[31m\\ \r\n \u001b[33mP\u001b[31m\\ \u001b[31m|\u001b[33m| \u001b[33m/ \u001b[33m\\ \u001b[33m<_ \u001b[33m| \u001b[31m|__| \u001b[33m/ \u001b[33m\\ \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m\\ \u001b[33m/ \u001b[33m\\ \u001b[33m/ \u001b[33m| \u001b[31m< \r\n \u001b[34m| \u001b[31m| \u001b[31m|\u001b[33m| \u001b[33m|-| \u001b[33m> \u001b[33m| \u001b[31m| \u001b[31m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m|_/ \u001b[33m| \u001b[33m| \u001b[33m<_ \u001b[33m| \u001b[31m> \r\n \u001b[34m| \u001b[31m| \u001b[31m|\u001b[33m\\__ \u001b[33m| \u001b[33m| \u001b[33m_/ \u001b[33m| \u001b[31m| \u001b[31m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m| \u001b[33m> \u001b[33m| \u001b[31m/ \r\n \u001b[34m| \u001b[31m| \u001b[31m|_______",
"encoding": "UTF-8",
"mssp": {
"ANSI": "1",
"AREAS": "82",
"CLASSES": "4",
"CODEBASE": "LastOutpost 4.55",
"CONTACT": "rahjiii@jeffrika.com",
"CRAWL DELAY": "-1",
"CREATED": "1992",
"DESCRIPTION": "Along with exploring and advancing through the game world, The Last Outpost offers players the ability to lay claim to the zones that make up the land. Once claimed, a zone can be taxed, and the player making the claim gets to decide the player killing policy within the zone. Whoever claims the whole world is declared the Leader of the Last Outpost! The Last Outpost has a unique world, player elected clan membership, player regulated PvP, and a hands-off policy for administrators. ",
"FAMILY": "DikuMUD",
"GAMEPLAY": [
"Roleplaying",
"Player versus Player",
"Social",
"Player versus Environment",
"Hack and Slash",
"Questing",
"Adventure"
],
"GAMESYSTEM": "Custom",
"GENRE": "Fantasy",
"GMCP": "1",
"HELPFILES": "406",
"HIRING BUILDERS": "1",
"HIRING CODERS": "0",
"HOSTNAME": "last-outpost.com",
"ICON": "https://www.last-outpost.com/LO/common/msspicon.png",
"IP": "70.226.30.1",
"LANGUAGE": "English",
"LEVELS": "80",
"LOCALTIME": "Sun Feb 08 00:12:32 AM EST 2026",
"LOCATION": "United States of America",
"MCMP": "1",
"MINIMUM AGE": "0",
"MOBILES": "1100",
"NAME": "The Last Outpost",
"OBJECTS": "1386",
"PAY FOR PERKS": "0",
"PAY TO PLAY": "0",
"PLAYERS": "0",
"PORT": "4000",
"RACES": "6",
"ROOMS": "5873",
"SSL": "4443",
"STATUS": "Live",
"SUBGENRE": "Medieval Fantasy",
"UPTIME": "1770314559",
"UTF-8": "1",
"VT100": "1",
"WEBSITE": "https://www.last-outpost.com"
},
"option_states": {
"environ_requested": [],
"server_offered": {
"CHARSET": true,
"ECHO": true,
"EOR": true,
"GMCP": true,
"MSSP": true,
"SGA": true
},
"server_requested": {
"NAWS": true,
"NEW_ENVIRON": true,
"TTYPE": true
}
},
"timing": {
"probe": 0.5041189193725586,
"total": 1.0056307315826416
}
}
},
"sessions": [
{
"connected": "2026-02-08T05:38:33.654754+00:00",
"host": "last-outpost.com",
"ip": "70.226.30.1",
"port": 4000
}
]
}
Connection Log
--------------
Debug-level log of the Telnet negotiation session,
showing each IAC (Interpret As Command) exchange
between client and server.
.. code-block:: text
DEBUG client.py:770 Fingerprint client: host=last-outpost.com port=4000
INFO client_base.py:174 Connected to
DEBUG stream_writer.py:697 recv IAC WILL ECHO
DEBUG stream_writer.py:713 WILL ECHO unsolicited
DEBUG stream_writer.py:1869 handle_will(ECHO)
DEBUG stream_writer.py:3036 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:938 send IAC DO ECHO
DEBUG stream_writer.py:3036 remote_option[ECHO] = True
DEBUG stream_writer.py:3036 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:697 recv IAC WILL SGA
DEBUG stream_writer.py:713 WILL SGA unsolicited
DEBUG stream_writer.py:1869 handle_will(SGA)
DEBUG stream_writer.py:3036 pending_option[DO + SGA] = True
DEBUG stream_writer.py:938 send IAC DO SGA
DEBUG stream_writer.py:3036 remote_option[SGA] = True
DEBUG stream_writer.py:3036 pending_option[DO + SGA] = False
DEBUG stream_writer.py:697 recv IAC WILL EOR
DEBUG stream_writer.py:713 WILL EOR unsolicited
DEBUG stream_writer.py:1869 handle_will(EOR)
DEBUG stream_writer.py:3036 pending_option[DO + EOR] = True
DEBUG stream_writer.py:938 send IAC DO EOR
DEBUG stream_writer.py:3036 remote_option[EOR] = True
DEBUG stream_writer.py:3036 pending_option[DO + EOR] = False
DEBUG stream_writer.py:697 recv IAC DO TTYPE
DEBUG stream_writer.py:1739 handle_do(TTYPE)
DEBUG stream_writer.py:3036 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:938 send IAC WILL TTYPE
DEBUG stream_writer.py:3036 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3036 local_option[TTYPE] = True
DEBUG stream_writer.py:3036 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:697 recv IAC DO NAWS
DEBUG stream_writer.py:1739 handle_do(NAWS)
DEBUG stream_writer.py:3036 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:938 send IAC WILL NAWS
DEBUG stream_writer.py:2306 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3036 local_option[NAWS] = True
DEBUG stream_writer.py:3036 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:697 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1739 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3036 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:938 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3036 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3036 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3036 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:697 recv IAC WILL MSSP
DEBUG stream_writer.py:713 WILL MSSP unsolicited
DEBUG stream_writer.py:1869 handle_will(MSSP)
DEBUG stream_writer.py:3036 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:938 send IAC DO MSSP
DEBUG stream_writer.py:3036 remote_option[MSSP] = True
DEBUG stream_writer.py:3036 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:697 recv IAC WILL CHARSET
DEBUG stream_writer.py:715 WILL CHARSET (bi-directional capability exchange)
DEBUG stream_writer.py:1869 handle_will(CHARSET)
DEBUG stream_writer.py:3036 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:938 send IAC DO CHARSET
DEBUG stream_writer.py:3036 remote_option[CHARSET] = True
DEBUG stream_writer.py:3036 pending_option[DO + CHARSET] = False
DEBUG stream_writer.py:697 recv IAC WILL GMCP
DEBUG stream_writer.py:713 WILL GMCP unsolicited
DEBUG stream_writer.py:1869 handle_will(GMCP)
DEBUG stream_writer.py:3036 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:938 send IAC DO GMCP
DEBUG stream_writer.py:3036 remote_option[GMCP] = True
DEBUG stream_writer.py:3036 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:689 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:676 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:3036 pending_option[SB + TTYPE] = False
DEBUG stream_writer.py:2203 recv TTYPE SEND: b''
DEBUG stream_writer.py:2214 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:689 begin sub-negotiation SB NEW_ENVIRON
DEBUG stream_writer.py:676 sub-negotiation cmd NEW_ENVIRON SE completion byte
DEBUG stream_writer.py:3036 pending_option[SB + NEW_ENVIRON] = False
DEBUG stream_writer.py:2249 recv NEW_ENVIRON SEND (all)
DEBUG stream_writer.py:2272 env send: LANG='C', TERM='xterm-256color', LINES=25, COLUMNS=80, COLORTERM=''
DEBUG stream_writer.py:689 begin sub-negotiation SB MSSP
DEBUG stream_writer.py:676 sub-negotiation cmd MSSP SE completion byte
DEBUG stream_writer.py:2031 [SB + MSSP] unsolicited
DEBUG stream_writer.py:1642 MSSP: {'NAME': 'The Last Outpost', 'PLAYERS': '1', 'UPTIME': '1770314559', 'CRAWL DELAY': '-1',
'HOSTNAME': 'last-outpost.com', 'PORT': '4000', 'SSL': '4443', 'CODEBASE': 'LastOutpost 4.55', 'CONTACT':
'rahjiii@jeffrika.com', 'CREATED': '1992', 'IP': '70.226.30.1', 'LANGUAGE': 'English', 'LOCATION': 'United States of America',
'MINIMUM AGE': '0', 'WEBSITE': 'https://www.last-outpost.com', 'ICON': 'https://www.last-outpost.com/LO/common/msspicon.png',
'FAMILY': 'DikuMUD', 'GENRE': 'Fantasy', 'GAMEPLAY': ['Roleplaying', 'Player versus Player', 'Social', 'Player versus
Environment', 'Hack and Slash', 'Questing', 'Adventure'], 'GAMESYSTEM': 'Custom', 'STATUS': 'Live', 'SUBGENRE': 'Medieval
Fantasy', 'AREAS': '82', 'MOBILES': '1100', 'OBJECTS': '1386', 'ROOMS': '5873', 'HELPFILES': '406', 'CLASSES': '4', 'LEVELS':
'80', 'RACES': '6', 'ANSI': '1', 'VT100': '1', 'UTF-8': '1', 'PAY TO PLAY': '0', 'PAY FOR PERKS': '0', 'HIRING BUILDERS': '1',
'HIRING CODERS': '0', 'GMCP': '1', 'MCMP': '1', 'DESCRIPTION': 'Along with exploring and advancing through the game world, The
Last Outpost offers players the ability to lay claim to the zones that make up the land. Once claimed, a zone can be taxed,
and the player making the claim gets to decide the player killing policy within the zone. Whoever claims the whole world is
declared the Leader of the Last Outpost! The Last Outpost has a unique world, player elected clan membership, player regulated
PvP, and a hands-off policy for administrators. ', 'LOCALTIME': 'Sun Feb 08 17:05:52 PM EST 2026'}
DEBUG stream_writer.py:689 begin sub-negotiation SB CHARSET
DEBUG stream_writer.py:676 sub-negotiation cmd CHARSET SE completion byte
DEBUG stream_writer.py:2031 [SB + CHARSET] unsolicited
DEBUG client.py:266 encoding negotiated: UTF-8
DEBUG stream_writer.py:2111 send IAC SB CHARSET ACCEPTED UTF-8 IAC SE
DEBUG client_base.py:460 negotiation complete after 0.32s.
DEBUG stream_writer.py:689 begin sub-negotiation SB TTYPE
DEBUG stream_writer.py:676 sub-negotiation cmd TTYPE SE completion byte
DEBUG stream_writer.py:2031 [SB + TTYPE] unsolicited
DEBUG stream_writer.py:2203 recv TTYPE SEND: b''
DEBUG stream_writer.py:2214 send IAC SB TTYPE IS b'xterm-256color' IAC SE
DEBUG stream_writer.py:1311 IAC EOR: End of Record (unhandled).
DEBUG stream_writer.py:3036 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:938 send IAC DO BINARY
DEBUG stream_writer.py:3036 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:938 send IAC DO STATUS
DEBUG stream_writer.py:3036 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:938 send IAC DO COM_PORT_OPTION
DEBUG stream_writer.py:3036 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:938 send IAC DO MSDP
DEBUG stream_writer.py:3036 pending_option[DO + MSP] = True
DEBUG stream_writer.py:938 send IAC DO MSP
DEBUG stream_writer.py:3036 pending_option[DO + MXP] = True
DEBUG stream_writer.py:938 send IAC DO MXP
DEBUG stream_writer.py:3036 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:938 send IAC DO ZMP
DEBUG stream_writer.py:3036 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:938 send IAC DO AARDWOLF
DEBUG stream_writer.py:3036 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:938 send IAC DO ATCP
DEBUG stream_writer.py:697 recv IAC WONT BINARY
DEBUG stream_writer.py:1991 handle_wont(BINARY)
DEBUG stream_writer.py:3036 remote_option[BINARY] = False
DEBUG stream_writer.py:3036 pending_option[DO + BINARY] = False
INFO fingerprinting.py:737 new server fingerprint 687af2974567432e
INFO client_base.py:105 Connection closed to
*Generated by* `telnetlib3-fingerprint `_
.. code-block:: shell
telnetlib3-fingerprint --loglevel=debug last-outpost.com 4000
.. [#scan] measured 2026-02-08 at 05:38 UTC