sanctuary
=========
**Connection Banner:**
.. image:: /_static/banners/banner_85644abbbc39.png
:alt: logind.c's logon() execting... ˍˍˍ 聖 殿 英 雄 傳 說 ˍˍˍ The Hero Legends of Sanctuary 重生篇:∼炎與新生 攜手共創嶄新的未來∼ 創站者 - Int(1995,7) 管理群 - Nobu、Laechan(代)、Norr、Justinj Plan、Highelf、Quest、Blue、Cnas ◢ ▂▃▔ ◢█◤ █ 仗劍江湖 幾番際遇成追憶 ▄▅▆█▆▅▄▄▄▄▄█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▇▅▃ ▃▅▇▇▇▇▇▇▇▇▇▇▇單騎沙場 多少傳奇總是詩 ◥█◣ █ ◥█▇▆▂ 聖殿英雄傳說BBS: PTT 的 mud_sanc 板 本站IP位址: telnet://sanc.game.tw:4002 (网4: http://ppt.cc/varM) 中?玩家可使用 pietty 等同J支持橧c字体的T机Y件(T机模式u Telnet) Pietty 下^地址: https://sites.google.com/view/pietty-project 新的一年,【聖殿英雄傳說】祝各位身體安康,事事如意 ^_^ 人數/上限[181/∞],你想用哪個名字?(新角色請按 new): 《你必須輸入你要進入的名字!》 人數上限[240],你想用哪個名字?(新角色請按 new):
:class: ansi-banner
:width: 627px
:loading: lazy
Server URLs
-----------
.. raw:: html
Server Info
-----------
- **Players online**: 181 [#scan]_
- **Uptime**: 5 days
- **Server Location**: 🇹🇼 Taiwan (GeoIP)
- **Encoding**: big5
This server uses a legacy encoding:
``telnetlib3-client --encoding big5 --force-binary sanc.game.tw 4002``
Protocol Support
----------------
MUD-specific protocols detected via MSSP flags or
Telnet negotiation.
- **MSSP**: :proto-yes:`Yes` (MSSP)
- **GMCP**: :proto-negotiated:`Negotiated`
- **MSDP**: :proto-no:`No`
- **MCCP**: :proto-no:`No`
- **MCCP2**: :proto-no:`No`
- **MXP**: :proto-negotiated:`Negotiated`
- **MSP**: :proto-no:`No`
- **MCP**: :proto-no:`No`
- **ZMP**: :proto-negotiated:`Negotiated`
Telnet Fingerprint
------------------
:ref:`f9b3f33571e02f38 `
*This fingerprint is shared by 11 other servers.*
**Options offered by server**: ``ECHO``, ``GMCP``, ``MSSP``, ``SGA``, ``ZMP``
**Options requested from client**: ``LINEMODE``, ``MXP``, ``NAWS``, ``NEW_ENVIRON``, ``SGA``, ``TTYPE``
The complete JSON record collected during the scan,
including Telnet negotiation results and any
MSSP metadata.
.. raw:: html
Show JSON
.. code-block:: json
{
"server-probe": {
"fingerprint": "f9b3f33571e02f38",
"fingerprint-data": {
"offered-options": [
"ECHO",
"GMCP",
"MSSP",
"SGA",
"ZMP"
],
"probed-protocol": "server",
"refused-options": [
"AARDWOLF",
"ATCP",
"BINARY",
"CHARSET",
"COM_PORT",
"EOR",
"MSDP",
"MSP",
"MXP",
"STATUS"
],
"requested-options": [
"LINEMODE",
"MXP",
"NAWS",
"NEW_ENVIRON",
"SGA",
"TTYPE"
],
"scan-type": "quick"
},
"session_data": {
"banner_after_return": "\u001b[1;31m\r\n\u300a\u4f60\u5fc5\u9808\u8f38\u5165\u4f60\u8981\u9032\u5165\u7684\u540d\u5b57\uff01\u300b\r\n\r\n\u001b[0m\r\n\u4eba\u6578\u4e0a\u9650[240]\uff0c\u4f60\u60f3\u7528\u54ea\u500b\u540d\u5b57\uff1f(\u65b0\u89d2\u8272\u8acb\u6309 new)\uff1a",
"banner_before_return": "logind.c's logon() execting...\u001b[1;35m\r\n\r\n\t\t\u3000\u3000 \u02cd\u02cd\u02cd \u001b[36m\u8056 \u6bbf \u001b[33m\u82f1 \u96c4 \u001b[36m\u50b3 \u8aaa\u001b[33m \u001b[35m\u02cd\u02cd\u02cd\r\n\r\n\t\u001b[0;36m\uff34\uff48\uff45\u3000\uff28\uff45\uff52\uff4f\u3000\uff2c\uff45\uff47\uff45\uff4e\uff44\uff53\u3000\uff4f\uff46\u3000\uff33\uff41\uff4e\uff43\uff54\uff55\uff41\uff52\uff59\r\n\r\n\t\t\u001b[1;37m \u91cd\u751f\u7bc7\uff1a\u223c\u708e\u8207\u65b0\u751f \u651c\u624b\u5171\u5275\u5d84\u65b0\u7684\u672a\u4f86\u223c\u001b[1;34m\r\n\r\n\t\t\t \u5275\u7ad9\u8005 - Int(1995,7)\r\n \t \u7ba1\u7406\u7fa4 - Nobu\u3001Laechan(\u4ee3)\u3001Norr\u3001Justinj\r\n\t Plan\u3001Highelf\u3001Quest\u3001Blue\u3001Cnas\r\n\u001b[0m\r\n \u25e2\u001b[7m \u2582\u2583\u001b[0m\u2594\r\n \u25e2\u2588\u25e4 \u2588 \u4ed7\u528d\u6c5f\u6e56 \u5e7e\u756a\u969b\u9047\u6210\u8ffd\u61b6\r\n \u2584\u2585\u2586\u2588\u2586\u2585\u2584\u2584\u2584\u2584\u2584\u2588\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584\r\n \u001b[7m\u2587\u2585\u2583 \u2583\u2585\u2587\u2587\u2587\u2587\u2587\u001b[0m\u2587\u001b[7m\u2587\u2587\u2587\u2587\u2587\u001b[0m\u55ae\u9a0e\u6c99\u5834 \u591a\u5c11\u50b3\u5947\u7e3d\u662f\u8a69\r\n \u25e5\u2588\u25e3 \u2588\r\n \u25e5\u2588\u2587\u2586\u2582 \u001b[1;36;4m\u8056\u6bbf\u82f1\u96c4\u50b3\u8aaa\uff22\uff22\uff33: PTT \u7684 mud_sanc \u677f\u001b[0m\r\n\r\n\u672c\u7ad9IP\u4f4d\u5740: telnet://sanc.game.tw:4002 (\u7f514: http://ppt.cc/varM)\r\n\u4e2d?\u73a9\u5bb6\u53ef\u4f7f\u7528 pietty \u7b49\u540cJ\u652f\u6301\udc8a\u6a67c\u5b57\u4f53\u7684\udc8aT\u673aY\u4ef6(\udc8aT\u673a\u6a21\u5f0f\udc89u Telnet)\r\nPietty \u4e0b\udc86^\u5730\u5740: https://sites.google.com/view/pietty-project\r\n\r\n\u001b[1;31m\u65b0\u7684\u4e00\u5e74\uff0c\u3010\u8056\u6bbf\u82f1\u96c4\u50b3\u8aaa\u3011\u795d\u5404\u4f4d\u8eab\u9ad4\u5b89\u5eb7\uff0c\u4e8b\u4e8b\u5982\u610f ^_^\u001b[0m\r\n\u001b[1;37m\u4eba\u6578/\u4e0a\u9650[\u001b[32m181/\u221e\u001b[37m],\u001b[0;36m\u4f60\u60f3\u7528\u54ea\u500b\u540d\u5b57?(\u65b0\u89d2\u8272\u8acb\u6309 \u001b[1mnew\u001b[0;36m)\u001b[0m: ",
"dsr_replies": 0,
"dsr_requests": 0,
"encoding": "big5",
"mssp": {
"NAME": "sanctuary",
"PLAYERS": "181",
"UPTIME": "1770639320"
},
"option_states": {
"environ_requested": [
{
"name": "*",
"type": "VAR"
},
{
"name": "*",
"type": "USERVAR"
}
],
"server_offered": {
"0x56": false,
"GMCP": true,
"MSSP": true,
"ZMP": true
},
"server_requested": {
"LINEMODE": true,
"MXP": true,
"NAWS": true,
"NEW_ENVIRON": true,
"SGA": true,
"TTYPE": true
}
},
"scan_type": "quick",
"timing": {
"probe": 0.5151863098144531,
"total": 5.319323539733887
}
}
},
"sessions": [
{
"connected": "2026-02-14T17:11:45.316898+00:00",
"host": "sanc.game.tw",
"ip": "114.33.120.231",
"port": 4002
}
]
}
.. raw:: html
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 `_
.. code-block:: shell
telnetlib3-fingerprint --loglevel=debug sanc.game.tw 4002
.. raw:: html
Show Logfile
.. code-block:: text
DEBUG client.py:965 Fingerprint client: host=sanc.game.tw port=4002
INFO client_base.py:175 Connected to
DEBUG client_base.py:492 negotiation complete after 0.00s.
DEBUG stream_writer.py:707 recv IAC DO LINEMODE
DEBUG stream_writer.py:1770 handle_do(LINEMODE)
DEBUG stream_writer.py:3174 pending_option[WILL + LINEMODE] = True
DEBUG stream_writer.py:950 send IAC WILL LINEMODE
DEBUG stream_writer.py:3174 pending_option[SB + LINEMODE] = True
DEBUG stream_writer.py:3174 local_option[LINEMODE] = True
DEBUG stream_writer.py:3174 pending_option[WILL + LINEMODE] = False
DEBUG stream_writer.py:699 begin sub-negotiation SB LINEMODE
DEBUG stream_writer.py:686 sub-negotiation cmd LINEMODE SE completion byte
DEBUG stream_writer.py:3174 pending_option[SB + LINEMODE] = False
DEBUG stream_writer.py:2544 recv IAC SB LINEMODE LINEMODE-MODE b'\x03' IAC SE
DEBUG stream_writer.py:1277 set Linemode
DEBUG stream_writer.py:1280 send IAC SB LINEMODE LINEMODE-MODE IAC SE
DEBUG stream_writer.py:707 recv IAC DO SGA
DEBUG stream_writer.py:1770 handle_do(SGA)
DEBUG stream_writer.py:3174 pending_option[WILL + SGA] = True
DEBUG stream_writer.py:950 send IAC WILL SGA
DEBUG stream_writer.py:3174 local_option[SGA] = True
DEBUG stream_writer.py:3174 pending_option[WILL + SGA] = False
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 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 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 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: {'NAME': 'sanctuary', 'PLAYERS': '181', 'UPTIME': '1770639320'}
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 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 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
INFO fingerprinting.py:746 connection for server fingerprint f9b3f33571e02f38
INFO client_base.py:106 Connection closed to
.. raw:: html
.. [#scan] measured 2026-02-14 at 17:11 UTC