无故障yo/dealdoh-client

一个DNS代理客户端,通过HTTP和CLI以不同的协议进行DNS查询和转发。

0.2.0-beta 2020-08-05 15:53 UTC

README

一个处理DNS over HTTPS等的玩具!

dealdoh-client是一个简单的DNS客户端,内嵌了DNS-over-HTTPS (DoH) 代理服务器和CLI,可以多种上游方式执行和转发DNS查询。

PHP from Packagist Build Status codecov Scrutinizer code quality (GitHub/Bitbucket) Packagist Docker Cloud Build Status

描述

dealdoh-client可以以不同的方式、用于不同的目的

  • 作为一个DoH代理服务器
  • 作为一个DNS客户端,使用提供的命令行客户端进行DNS查询
  • 两者都可以使用一组DNS上游,可以通过运行一些命令轻松配置

Dealdoh是基于Dealdoh库构建的。

路线图

入门

如上所述,有多种方式使用dealdoh-client。让我们看看目前可以用dealdoh-client做什么。

作为一个DoH代理服务器

作为一个DNS命令行客户端

要求

安装

  • 您可以通过克隆项目来使用客户端

git clone https://github.com/noglitchyo/dealdoh-client

composer install

  • 或者在一个项目中作为依赖项使用

composer require noglitchyo/dealdoh-client

用法

添加DNS上游

您可以使用以下命令将DNS上游添加到DNS池

php bin/dealdoh upstream:add https://dns.google.com/resolve google-doh-api

执行DNS查询

要从命令行直接执行DNS查询,您可以使用提供的二进制文件

php bin/dealdoh resolve tools.ietf.org AAAA --pretty

它将以JSON字符串的形式输出结果:(响应被截断)

{
    "header": {
        "id": 0,
        "qr": true,
        "opcode": 0,
        "aa": false,
        "tc": false,
        "rd": true,
        "ra": true,
        "z": 0,
        "rcode": 0
    },
    "question": [
        {
            "qname": "tools.ietf.org.",
            "qtype": 28,
            "qclass": 1
        }
    ],
    "answer": [
        {
            "name": "tools.ietf.org.",
            "type": 28,
            "class": 1,
            "ttl": 13,
            "data": "2001:1900:3001:11::3e"
        }
    ],
    "authority": [],
    "additional": []
}

测试

如果您想运行测试,请检出项目,然后使用以下命令运行测试

composer test

贡献

从这里开始CONTRIBUTING.md

许可

本项目的许可协议为MIT许可 - 有关详细信息,请参阅LICENSE.md文件。