协议
MSSP
Mud Server Status Protocol——一个游戏如何向爬虫讲述自己。它报告的一切都是自述而非实测,本站把这两者分得清清楚楚。
实测采用情况
318 在886个已列出的游戏中——35.9%
未算进这里的游戏,并不是没有这个协议的游戏。一个游戏被算进这里,条件是我们观测到它的服务器在一次握手中提供了这个选项;其余的既包括没有向我们提供它的服务器,也包括我们还没有读到过握手的服务器,而我们说不出是哪一种。
| 代码库 | 已提供 | 已识别 |
|---|---|---|
| FluffOS | 28 | 28 |
| PennMUSH | 28 | 34 |
| CoffeeMUD | 18 | 32 |
| CircleMUD | 15 | 47 |
| ROM | 12 | 55 |
| Evennia | 11 | 11 |
| DikuMUD | 6 | 35 |
| SMAUG | 5 | 20 |
| MUCK | 4 | 24 |
| tbaMUD | 4 | 5 |
| AresMUSH | 3 | 18 |
| CobraMUSH | 0 | 2 |
| RhostMUSH | 0 | 40 |
| TinyMUSH | 0 | 9 |
MSSP 是 telnet 选项 70。爬虫发送 IAC DO MSSP,支持它的服务器就回一张描述自己的名值对表格——
名称、在线人数、代码库、运行时长、主机名、端口、题材,以及它愿意公布的其他任何东西。
它是这个圈子里最接近“机器可读的目录条目”的东西,也是好几个目录站点得以存在的原因。
MSSP 报告里的每一项都是一句断言
本站与所有既有站点的分歧就在这一点上。一份 MSSP 报告是游戏在告诉你它自己的情况。
MSSP 表里的 GMCP 1 意味着有人在某个配置文件里敲了个 1,也许是在 2011 年。
它不是服务器提供 GMCP 的证据,而两者对不上的次数,多到足以让人感兴趣。
所以来自 MSSP 的事实在这里标为自述;凡是同一项事实我们也能实测的——比如一项能力, 去看这个选项是否真的被协商了——两者都会并排显示,各自带着一个时间。一个游戏的 MSSP 自述支持 GMCP 已有六年,却从未在任何一次握手中提供过它,这是个值得知道的事实,而且别处找不到。
有一个字段我们刻意完全不予采信:CREATED。它只是一行手敲的文字,
把它计入任何东西,都会让那样东西轻易地被人做手脚。
谁会应答它
MSSP 是 Diku 和 LP 那边的答案。在我们自己那份涵盖 38 个代码库的调查中,
有 28 个通过 MSSP 公布在线人数,7 个通过登录画面上的 WHO 公布,两样都做的只有 2 个——
这两个家族几乎完全不相交。AresMUSH、TinyMUX、MUCK、RhostMUSH、CobraMUSH 和 TinyMUSH
完全不提供 MSSP。
这就是要探测四个层次而不是一个层次的实证理由:只建立在 MSSP 之上的爬虫, 看不见 MUSH 家族的大部分,而那是这个圈子里很大的一块,也是本站预期读者中的大多数。
主动索取,不要干等
有相当多完全支持 MSSP 的服务器从不主动给出它——它们会应答 IAC DO MSSP,除此之外一言不发。
于是,一个上来先发 IAC WILL NAWS 然后等着的爬虫,会把这些游戏报成什么都没公布,
而这是拿爬虫自己的沉默去下一句关于服务器的断言。我们在连接时就发送 IAC DO MSSP。
纯文本形式
还有一种更老的变体:客户端在登录画面上直接发送 MSSP-REQUEST 这一行字面文本。我们实测过:
在试过的二十个游戏里,有三个作了应答——而这三个同样也应答 telnet 选项 70,
所以它没能触及任何选项 70 触及不到的东西。有八台服务器把这个请求读成了一个角色名并如此回复,
白白花掉了一个陌生人被允许的登录尝试次数中的一次。我们不发送它。