This commit is contained in:
2022-10-23 01:39:27 +02:00
parent 8c17aab483
commit 1929b84685
4130 changed files with 479334 additions and 0 deletions

22
vendor/react/dns/examples/01-one.php vendored Executable file
View 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
View 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
View 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
View 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
View 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
View 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();

View 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
View 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();