Example #1
0
 /**
  * Query DNS server for answer records.
  *
  * @param string $server DNS server IP.
  * @param string $host Host name to be resolved.
  * @param int $type Question type (A or AAAA).
  * @return array Resolved IP addresses.
  */
 protected function queryServer(string $server, string $host, int $type) : \Generator
 {
     $transport = (yield from $this->createTransport($server));
     try {
         $request = new Request();
         $request->addQuestion($host, $type);
         $request->setRecursionDesired(true);
         yield from $transport->write($request->encode());
         $response = (yield from (new ResponseParser($transport))->parse($request));
     } finally {
         $transport->close();
     }
     return $response->getAnswers();
 }