ReactPHP-Dns
Dns
为ReactPHP提供的异步DNS解析。
DNS组件的主要目的是提供异步DNS解析。但是,它实际上是处理DNS消息的工具包,可以很容易地用于创建DNS服务器
基本用法
最基本的用法是通过解析器工厂创建解析器。你只需要给它一个名字,然后你就可以开始解析名字了,兄(xiong)弟(dei).
$loop = React\EventLoop\Factory::create();
$config = React\Dns\Config\Config::loadSystemConfigBlocking();
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8';
$factory = new React\Dns\Resolver\Factory();
$dns = $factory->create($server, $loop);
$dns->resolve('igor.io')->then(function ($ip) {
echo "Host: $ip\n";
});
$loop->run();
参阅第一个例子
Config
类可以被用作加载系统的默认配置。这是一个可能访问文件系统和块的操作。因此,理想情况下,该方法应该在循环开始前只执行一次,而在运行时不重复执行。注意,如果无法加载系统配置,该类可能返回空配置。因此,如果找不到任何名称,您可能希望应用上面的默认名称服务器。
注意,在创建解析实例时,工厂将从文件系统加载主机文件一次。理想情况下,这个方法应该在循环开始钱执行一次,而在运行时不再重复执行。
但还有更多。
缓存
你可以通过配置解析器用CachedExecutor来缓存结果:
$loop = React\EventLoop\Factory::create();
$config = React\Dns\Config\Config::loadSystemConfigBlocking();
$server = $config->nameservers ? reset($config