zoukankan      html  css  js  c++  java
  • dict 协议——这玩意和redis差不多

    dict 协议初体验

    多说无益,直接上一个用了 dict 协议的服务让你们来体验一下

    首先在你的电脑上安装一个 telnet 客户端 Windows 和 Mac / Linux 上应该都有对应的客户端

    安装好了以后用这个命令来登陆

    由于编码原因,有些非英文字符在某些系统上可能会乱码

    telnet dict.org 2628
    

    之后如果连接上了,能看到对应的提示:

    220 dict.dict.org dictd 1.12.1/rf on Linux 4.19.0-10-amd64 <auth.mime><56180310.14213.1628480435@dict.dict.org>
    

    在终端中输入 h 来获取帮助

    113 help text follows
    DEFINE database word         -- look up word in database
    MATCH database strategy word -- match word in database using strategy
    SHOW DB                      -- list all accessible databases
    SHOW DATABASES               -- list all accessible databases
    SHOW STRAT                   -- list available matching strategies
    SHOW STRATEGIES              -- list available matching strategies
    SHOW INFO database           -- provide information about the database
    SHOW SERVER                  -- provide site-specific information
    OPTION MIME                  -- use MIME headers
    CLIENT info                  -- identify client to server
    AUTH user string             -- provide authentication information
    STATUS                       -- display timing information
    HELP                         -- display this help information
    QUIT                         -- terminate connection
    
    The following commands are unofficial server extensions for debugging
    only.  You may find them useful if you are using telnet as a client.
    If you are writing a client, you MUST NOT use these commands, since
    they won't be supported on any other server!
    
    D word                       -- DEFINE * word
    D database word              -- DEFINE database word
    M word                       -- MATCH * . word
    M strategy word              -- MATCH * strategy word
    M database strategy word     -- MATCH database strategy word
    S                            -- STATUS
    H                            -- HELP
    Q                            -- QUIT
    

    在终端中输入 show db 命令(这个东西貌似不区分大小写的样子)来列出所有的字典

    image.png

    在最后我们看到了 english 这个字典

    在最后我们输入 define [字典名] [单词] 这样的命令来获取一个单词的解释

    比如说 define english hello

    image.png

    服务器就会返回对应的单词解释

    dict 协议是啥

    dict 协议是一个在线网络字典协议,这个协议是用来架设一个字典服务的。不过貌似用的比较少,所以网上基本没啥资料(包括谷歌上)。可以看到用这个协议架设的服务可以用 telnet 来登陆,说明这个协议应该是基于 tcp 协议开发的。

    所以像 mysql 的服务,因为也是基于 tcp 协议开发,所以用 dict 协议的方式打开也能强行读取一些 mysql 服务的返回内容

    比如说下面这段程序:

    <?php
    
    // 文件名: main.php
      
    $url = "dict://localhost:3306"; // localhost:3306 上架设了我的 mysql 服务
    
    $ch = curl_init($url);
    curl_exec($ch);
    curl_close($ch);
    

    输出结果:

    image.png

    可以看到虽然乱码,但是还是强行读取出来了一些可以辨识的数据,比如说 mysql 的版本号。

  • 相关阅读:
    Spring MVC 迁移项目搭建运行
    linux 安装 nginx
    linux 安装 redis
    linux 安装 jdk
    存储过程之游标插入数据
    存储过程之基础语法
    AES加密解密,自定义加密规则记录
    idea破解记录
    Mysql-explain之Using temporary和Using filesort解决方案
    C#多线程学习笔记(朝夕eleven) Task启动方式、Task阻塞、Task.Delay()、多线程异常处理、任务取消、多线程的临时变量、共享数据的lock、Task返回值
  • 原文地址:https://www.cnblogs.com/bonelee/p/15192653.html
Copyright © 2011-2022 走看看