<?php 
 
use React\Dns\Config\Config; 
use React\Dns\Resolver\Factory; 
use React\Dns\Model\Message; 
 
require __DIR__ . '/../vendor/autoload.php'; 
 
$loop = React\EventLoop\Factory::create(); 
 
$config = Config::loadSystemConfigBlocking(); 
$server = $config->nameservers ? reset($config->nameservers) : '8.8.8.8'; 
 
$factory = new Factory(); 
$resolver = $factory->create($server, $loop); 
 
$ip = isset($argv[1]) ? $argv[1] : '8.8.8.8'; 
 
if (@inet_pton($ip) === false) { 
    exit('Error: Given argument is not a valid IP' . PHP_EOL); 
} 
 
if (strpos($ip, ':') === false) { 
    $name = inet_ntop(strrev(inet_pton($ip))) . '.in-addr.arpa'; 
} else { 
    $name = wordwrap(strrev(bin2hex(inet_pton($ip))), 1, '.', true) . '.ip6.arpa'; 
} 
 
$resolver->resolveAll($name, Message::TYPE_PTR)->then(function (array $names) { 
    var_dump($names); 
}, function (Exception $e) { 
    echo $e->getMessage() . PHP_EOL; 
}); 
 
$loop->run(); 
 
 |