11-all-ips.php 970 B

1234567891011121314151617181920212223242526272829
  1. <?php
  2. use React\Dns\Config\Config;
  3. use React\Dns\Resolver\Factory;
  4. use React\Dns\Model\Message;
  5. require __DIR__ . '/../vendor/autoload.php';
  6. $config = Config::loadSystemConfigBlocking();
  7. if (!$config->nameservers) {
  8. $config->nameservers[] = '8.8.8.8';
  9. }
  10. $factory = new Factory();
  11. $resolver = $factory->create($config);
  12. $name = isset($argv[1]) ? $argv[1] : 'www.google.com';
  13. $resolver->resolveAll($name, Message::TYPE_A)->then(function (array $ips) use ($name) {
  14. echo 'IPv4 addresses for ' . $name . ': ' . implode(', ', $ips) . PHP_EOL;
  15. }, function (Exception $e) use ($name) {
  16. echo 'No IPv4 addresses for ' . $name . ': ' . $e->getMessage() . PHP_EOL;
  17. });
  18. $resolver->resolveAll($name, Message::TYPE_AAAA)->then(function (array $ips) use ($name) {
  19. echo 'IPv6 addresses for ' . $name . ': ' . implode(', ', $ips) . PHP_EOL;
  20. }, function (Exception $e) use ($name) {
  21. echo 'No IPv6 addresses for ' . $name . ': ' . $e->getMessage() . PHP_EOL;
  22. });