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.
dealdoh-client can be use in different manners and for different purposes:
- as a DoH proxy server
- as a DNS client, using the provided command-line client to make DNS queries
- both can use a pool of DNS upstream which can be easily configured by running some commands
Dealdoh is built on top of the Dealdoh library.
As mentionned above, there is multiple ways to use dealdoh-client. Let's see what can be done at the time with dealdoh-client.
- PHP 7.3
- Composer
- You can use the client by cloning the project:
git clone https://github.com/noglitchyo/dealdoh-client
composer install
- or by using as a dependency in a project:
composer require noglitchyo/dealdoh-client
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
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": []
}
If you wish to run the test, checkout the project and run the test with:
composer test
Get started here CONTRIBUTING.md.
This project is licensed under the MIT License - see the LICENSE.md file for details