Home

Awesome

dealdoh-client

A toy to deal DNS over HTTPS and more!

dealdoh-client is a simple DNS client embedding a DNS-over-HTTPS (DoH) proxy server and CLI to make & forward DNS queries through a variety of upstreams.

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

Description

dealdoh-client can be use in different manners and for different purposes:

Dealdoh is built on top of the Dealdoh library.

Roadmap

Getting started

As mentionned above, there is multiple ways to use dealdoh-client. Let's see what can be done at the time with dealdoh-client.

As a DoH proxy server

As a DNS command-line client

Requirements

Installation

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

composer install

composer require noglitchyo/dealdoh-client

Usage

Add a DNS upstream

You can use the following command to add a DNS upstream to the DNS pool:

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

Execute a DNS query

To execute DNS query directly from the command-line, you can use the provided binary:

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

It will output the result as JSON string: (response is truncated)

{
    "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": []
}

Testing

If you wish to run the test, checkout the project and run the test with:

composer test

Contributing

Get started here CONTRIBUTING.md.

License

This project is licensed under the MIT License - see the LICENSE.md file for details