mirror of
https://github.com/YunoHost-Apps/movim_ynh.git
synced 2024-09-03 19:46:19 +02:00
82 lines
2.1 KiB
Markdown
82 lines
2.1 KiB
Markdown
# Dns Component
|
|
|
|
[](http://travis-ci.org/reactphp/dns) [](https://codeclimate.com/github/reactphp/dns)
|
|
|
|
Async DNS resolver.
|
|
|
|
The main point of the DNS component is to provide async DNS resolution.
|
|
However, it is really a toolkit for working with DNS messages, and could
|
|
easily be used to create a DNS server.
|
|
|
|
## Basic usage
|
|
|
|
The most basic usage is to just create a resolver through the resolver
|
|
factory. All you need to give it is a nameserver, then you can start resolving
|
|
names, baby!
|
|
|
|
```php
|
|
$loop = React\EventLoop\Factory::create();
|
|
$factory = new React\Dns\Resolver\Factory();
|
|
$dns = $factory->create('8.8.8.8', $loop);
|
|
|
|
$dns->resolve('igor.io')->then(function ($ip) {
|
|
echo "Host: $ip\n";
|
|
});
|
|
|
|
$loop->run();
|
|
```
|
|
|
|
But there's more.
|
|
|
|
## Caching
|
|
|
|
You can cache results by configuring the resolver to use a `CachedExecutor`:
|
|
|
|
```php
|
|
$loop = React\EventLoop\Factory::create();
|
|
$factory = new React\Dns\Resolver\Factory();
|
|
$dns = $factory->createCached('8.8.8.8', $loop);
|
|
|
|
$dns->resolve('igor.io')->then(function ($ip) {
|
|
echo "Host: $ip\n";
|
|
});
|
|
|
|
...
|
|
|
|
$dns->resolve('igor.io')->then(function ($ip) {
|
|
echo "Host: $ip\n";
|
|
});
|
|
|
|
$loop->run();
|
|
```
|
|
|
|
If the first call returns before the second, only one query will be executed.
|
|
The second result will be served from cache.
|
|
|
|
## Install
|
|
|
|
The recommended way to install this library is [through Composer](http://getcomposer.org).
|
|
[New to Composer?](http://getcomposer.org/doc/00-intro.md)
|
|
|
|
This will install the latest supported version:
|
|
|
|
```bash
|
|
$ composer require react/dns:~0.4.0
|
|
```
|
|
|
|
If you care a lot about BC, you may also want to look into supporting legacy versions:
|
|
|
|
```bash
|
|
$ composer require "react/dns:~0.4.0|~0.3.0"
|
|
```
|
|
|
|
More details and upgrade guides can be found in the [CHANGELOG](CHANGELOG.md).
|
|
|
|
## License
|
|
|
|
MIT, see [LICENSE file](LICENSE).
|
|
|
|
## References
|
|
|
|
* [RFC 1034](http://tools.ietf.org/html/rfc1034) Domain Names - Concepts and Facilities
|
|
* [RFC 1035](http://tools.ietf.org/html/rfc1035) Domain Names - Implementation and Specification
|