Download the PHP package nelexa/guzzle-doh-middleware without Composer
On this page you can find all versions of the php package nelexa/guzzle-doh-middleware. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nelexa/guzzle-doh-middleware
More information about nelexa/guzzle-doh-middleware
Files in nelexa/guzzle-doh-middleware
Package guzzle-doh-middleware
Short Description A Dns over Https (DoH) middleware for Guzzle >= 6.0
License MIT
Informations about the package guzzle-doh-middleware
guzzle-doh-middleware
A DNS over HTTPS (DoH) middleware for Guzzle.Goals
- Resolving domains, via DoH before sending HTTP requests.
- Bypassing blocked sites, through DNS packet spoofing.
- Support for caching DNS responses, via PSR-6 and PSR-16 compatible packages.
- Support for multiple DoH providers.
Install
Usage
Setup cache
It is very important to configure caching of DNS requests, so that you do not have to contact a DNS server to resolve domains for every HTTP request.
Install a PSR-6 or PSR-16 compatible caching package.
For example, you can install the popular symfony/cache package.
Example init PSR-6 redis cache
Example init PSR-16 redis cache
You can pass the configured cache as the first argument when creating middleware.
If you don't pass the argument or pass null
, the cache will only be stored for the lifetime of the PHP process.
Setup DoH Servers
You can specify which DoH servers to use as a second argument when creating middleware. They will be chosen in random order.
The defaults are Cloudflare (for Mozilla) and Google.
Example:
Setup Logger & Debug
You can add the PSR-3 compatible Logger as a 3rd argument when creating middleware.
For debugging and console output of all DoH requests to servers, you can pass true
as 4th parameter when creating middleware.
Example debug info
Request options
You can configure requests created and transmitted by the client using request options.
Option "doh"
- Summary
Set
false
to disable domain resolving, via DoH.- Types
-
- bool
- Default
true
- Constant
\Nelexa\Doh\DohMiddleware::OPTION_DOH_ENABLED
To disable DoH middleware by default, pass false
for the doh
option when creating the HTTP client.
Option "doh_ttl"
- Summary
Forced setting of caching time for resolving results. If the option is not passed or
null
is passed, the caching time from the DNS server is used.- Types
-
- integer
- \DateInterval
- null
- Default
null
- Constant
\Nelexa\Doh\DohMiddleware::OPTION_DOH_TTL
Option "doh_shuffle"
- Summary
Set
true
to enable shuffling of ip addresses in random order when more than one ip address has been received as a result of domain resolving.- Types
-
- bool
- Default
false
- Constant
\Nelexa\Doh\DohMiddleware::OPTION_DOH_SHUFFLE
To enable ip mixing for all requests by default, pass true
for the ttl_shuffle
option when creating the HTTP client.
Symfony config DI
Credits
Changelog
Changes are documented in the releases page.
License
The MIT License (MIT). Please see LICENSE for more information.
All versions of guzzle-doh-middleware with dependencies
ext-curl Version *
daverandom/libdns Version ^2.0
guzzlehttp/guzzle Version ^6.3 | ^7.0
psr/cache Version ^1.0 | ^2.0 | ^3.0
psr/log Version ^1.0 | ^2.0 | ^3.0
psr/simple-cache Version ^1.0 | ^2.0 | ^3.0