03-cached.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. use React\Dns\Config\Config;
  3. use React\Dns\Resolver\Factory;
  4. use React\EventLoop\Loop;
  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->createCached($config);
  12. $name = isset($argv[1]) ? $argv[1] : 'www.google.com';
  13. $resolver->resolve($name)->then(function ($ip) use ($name) {
  14. echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
  15. }, 'printf');
  16. Loop::addTimer(1.0, function() use ($name, $resolver) {
  17. $resolver->resolve($name)->then(function ($ip) use ($name) {
  18. echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
  19. }, 'printf');
  20. });
  21. Loop::addTimer(2.0, function() use ($name, $resolver) {
  22. $resolver->resolve($name)->then(function ($ip) use ($name) {
  23. echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
  24. }, 'printf');
  25. });
  26. Loop::addTimer(3.0, function() use ($name, $resolver) {
  27. $resolver->resolve($name)->then(function ($ip) use ($name) {
  28. echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
  29. }, 'printf');
  30. });