init
This commit is contained in:
22
vendor/react/dns/examples/01-one.php
vendored
Executable file
22
vendor/react/dns/examples/01-one.php
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
use React\Dns\Config\Config;
|
||||
use React\Dns\Resolver\Factory;
|
||||
|
||||
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);
|
||||
|
||||
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
|
||||
|
||||
$resolver->resolve($name)->then(function ($ip) use ($name) {
|
||||
echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
|
||||
}, 'printf');
|
||||
|
||||
$loop->run();
|
||||
27
vendor/react/dns/examples/02-concurrent.php
vendored
Executable file
27
vendor/react/dns/examples/02-concurrent.php
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
use React\Dns\Config\Config;
|
||||
use React\Dns\Resolver\Factory;
|
||||
|
||||
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);
|
||||
|
||||
$names = array_slice($argv, 1);
|
||||
if (!$names) {
|
||||
$names = array('google.com', 'www.google.com', 'gmail.com');
|
||||
}
|
||||
|
||||
foreach ($names as $name) {
|
||||
$resolver->resolve($name)->then(function ($ip) use ($name) {
|
||||
echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
|
||||
}, 'printf');
|
||||
}
|
||||
|
||||
$loop->run();
|
||||
40
vendor/react/dns/examples/03-cached.php
vendored
Executable file
40
vendor/react/dns/examples/03-cached.php
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
use React\Dns\Config\Config;
|
||||
use React\Dns\Resolver\Factory;
|
||||
|
||||
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->createCached($server, $loop);
|
||||
|
||||
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
|
||||
|
||||
$resolver->resolve($name)->then(function ($ip) use ($name) {
|
||||
echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
|
||||
}, 'printf');
|
||||
|
||||
$loop->addTimer(1.0, function() use ($name, $resolver) {
|
||||
$resolver->resolve($name)->then(function ($ip) use ($name) {
|
||||
echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
|
||||
}, 'printf');
|
||||
});
|
||||
|
||||
$loop->addTimer(2.0, function() use ($name, $resolver) {
|
||||
$resolver->resolve($name)->then(function ($ip) use ($name) {
|
||||
echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
|
||||
}, 'printf');
|
||||
});
|
||||
|
||||
$loop->addTimer(3.0, function() use ($name, $resolver) {
|
||||
$resolver->resolve($name)->then(function ($ip) use ($name) {
|
||||
echo 'IP for ' . $name . ': ' . $ip . PHP_EOL;
|
||||
}, 'printf');
|
||||
});
|
||||
|
||||
$loop->run();
|
||||
31
vendor/react/dns/examples/11-all-ips.php
vendored
Executable file
31
vendor/react/dns/examples/11-all-ips.php
vendored
Executable file
@@ -0,0 +1,31 @@
|
||||
<?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);
|
||||
|
||||
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
|
||||
|
||||
$resolver->resolveAll($name, Message::TYPE_A)->then(function (array $ips) use ($name) {
|
||||
echo 'IPv4 addresses for ' . $name . ': ' . implode(', ', $ips) . PHP_EOL;
|
||||
}, function (Exception $e) use ($name) {
|
||||
echo 'No IPv4 addresses for ' . $name . ': ' . $e->getMessage() . PHP_EOL;
|
||||
});
|
||||
|
||||
$resolver->resolveAll($name, Message::TYPE_AAAA)->then(function (array $ips) use ($name) {
|
||||
echo 'IPv6 addresses for ' . $name . ': ' . implode(', ', $ips) . PHP_EOL;
|
||||
}, function (Exception $e) use ($name) {
|
||||
echo 'No IPv6 addresses for ' . $name . ': ' . $e->getMessage() . PHP_EOL;
|
||||
});
|
||||
|
||||
$loop->run();
|
||||
25
vendor/react/dns/examples/12-all-types.php
vendored
Executable file
25
vendor/react/dns/examples/12-all-types.php
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
use React\Dns\Config\Config;
|
||||
use React\Dns\Resolver\Factory;
|
||||
|
||||
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);
|
||||
|
||||
$name = isset($argv[1]) ? $argv[1] : 'google.com';
|
||||
$type = constant('React\Dns\Model\Message::TYPE_' . (isset($argv[2]) ? $argv[2] : 'TXT'));
|
||||
|
||||
$resolver->resolveAll($name, $type)->then(function (array $values) {
|
||||
var_dump($values);
|
||||
}, function (Exception $e) {
|
||||
echo $e->getMessage() . PHP_EOL;
|
||||
});
|
||||
|
||||
$loop->run();
|
||||
35
vendor/react/dns/examples/13-reverse-dns.php
vendored
Executable file
35
vendor/react/dns/examples/13-reverse-dns.php
vendored
Executable file
@@ -0,0 +1,35 @@
|
||||
<?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();
|
||||
29
vendor/react/dns/examples/91-query-a-and-aaaa.php
vendored
Executable file
29
vendor/react/dns/examples/91-query-a-and-aaaa.php
vendored
Executable file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
use React\Dns\Model\Message;
|
||||
use React\Dns\Query\Query;
|
||||
use React\Dns\Query\UdpTransportExecutor;
|
||||
use React\EventLoop\Factory;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$loop = Factory::create();
|
||||
$executor = new UdpTransportExecutor($loop);
|
||||
|
||||
$name = isset($argv[1]) ? $argv[1] : 'www.google.com';
|
||||
|
||||
$ipv4Query = new Query($name, Message::TYPE_A, Message::CLASS_IN);
|
||||
$ipv6Query = new Query($name, Message::TYPE_AAAA, Message::CLASS_IN);
|
||||
|
||||
$executor->query('8.8.8.8:53', $ipv4Query)->then(function (Message $message) {
|
||||
foreach ($message->answers as $answer) {
|
||||
echo 'IPv4: ' . $answer->data . PHP_EOL;
|
||||
}
|
||||
}, 'printf');
|
||||
$executor->query('8.8.8.8:53', $ipv6Query)->then(function (Message $message) {
|
||||
foreach ($message->answers as $answer) {
|
||||
echo 'IPv6: ' . $answer->data . PHP_EOL;
|
||||
}
|
||||
}, 'printf');
|
||||
|
||||
$loop->run();
|
||||
71
vendor/react/dns/examples/92-query-any.php
vendored
Executable file
71
vendor/react/dns/examples/92-query-any.php
vendored
Executable file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
use React\Dns\Model\Message;
|
||||
use React\Dns\Model\Record;
|
||||
use React\Dns\Query\Query;
|
||||
use React\Dns\Query\UdpTransportExecutor;
|
||||
use React\EventLoop\Factory;
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$loop = Factory::create();
|
||||
$executor = new UdpTransportExecutor($loop);
|
||||
|
||||
$name = isset($argv[1]) ? $argv[1] : 'google.com';
|
||||
|
||||
$any = new Query($name, Message::TYPE_ANY, Message::CLASS_IN);
|
||||
|
||||
$executor->query('8.8.8.8:53', $any)->then(function (Message $message) {
|
||||
foreach ($message->answers as $answer) {
|
||||
/* @var $answer Record */
|
||||
|
||||
$data = $answer->data;
|
||||
|
||||
switch ($answer->type) {
|
||||
case Message::TYPE_A:
|
||||
$type = 'A';
|
||||
break;
|
||||
case Message::TYPE_AAAA:
|
||||
$type = 'AAAA';
|
||||
break;
|
||||
case Message::TYPE_NS:
|
||||
$type = 'NS';
|
||||
break;
|
||||
case Message::TYPE_PTR:
|
||||
$type = 'PTR';
|
||||
break;
|
||||
case Message::TYPE_CNAME:
|
||||
$type = 'CNAME';
|
||||
break;
|
||||
case Message::TYPE_TXT:
|
||||
// TXT records can contain a list of (binary) strings for each record.
|
||||
// here, we assume this is printable ASCII and simply concatenate output
|
||||
$type = 'TXT';
|
||||
$data = implode('', $data);
|
||||
break;
|
||||
case Message::TYPE_MX:
|
||||
// MX records contain "priority" and "target", only dump its values here
|
||||
$type = 'MX';
|
||||
$data = implode(' ', $data);
|
||||
break;
|
||||
case Message::TYPE_SRV:
|
||||
// SRV records contains priority, weight, port and target, dump structure here
|
||||
$type = 'SRV';
|
||||
$data = json_encode($data);
|
||||
break;
|
||||
case Message::TYPE_SOA:
|
||||
// SOA records contain structured data, dump structure here
|
||||
$type = 'SOA';
|
||||
$data = json_encode($data);
|
||||
break;
|
||||
default:
|
||||
// unknown type uses HEX format
|
||||
$type = 'Type ' . $answer->type;
|
||||
$data = wordwrap(strtoupper(bin2hex($data)), 2, ' ', true);
|
||||
}
|
||||
|
||||
echo $type . ': ' . $data . PHP_EOL;
|
||||
}
|
||||
}, 'printf');
|
||||
|
||||
$loop->run();
|
||||
Reference in New Issue
Block a user