save
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
use Workerman\Protocols;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
use Workerman\Protocols;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns2://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
use Workerman\Protocols;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
use Workerman\Protocols;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('udp://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->protocol = 'Dns';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
use Workerman\Protocols;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('udp://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->protocol = 'dns';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
use Workerman\Protocols;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('udp://0.0.0.0:53');
|
||||
$worker->protocol = 'Dns';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
echo getRemoteIp();
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
echo $data;
|
||||
echo $connection->getRemoteIp();
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip"
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n"
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
#echo "$type\n$name\n$rip\n";
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://0.0.0.0:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
#echo "$type\n$name\n$rip\n";
|
||||
|
||||
$connection->send('0000000381800001000000000000047a6c69001062026d6c00001c0001');
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
#echo "$type\n$name\n$rip\n";
|
||||
|
||||
$connection->send('0000000381800001000000000000047a6c69001062026d6c00001c0001');
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
#echo "$type\n$name\n$rip\n";
|
||||
|
||||
$connection->send('000281800001000200000000047a6c6962026d6c0000010001c00c000100010000003c0004d466323ac00c000100010000001e0004d466323a');
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=explode('|||', $data);
|
||||
$type=$data[0];
|
||||
$name=$data[1];
|
||||
$rip=$connection->getRemoteIp();
|
||||
#echo "$type\n$name\n$rip\n";
|
||||
|
||||
|
||||
$connection->send('000281800001000200000000047a6c6962026d6c0000010001c00c000100010000003c0004d466323ac00c000100010000001e0004d466323a');
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data['type'];
|
||||
$name=$data['realname'];
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
|
||||
$connection->send('000281800001000200000000047a6c6962026d6c0000010001c00c000100010000003c0004d466323ac00c000100010000001e0004d466323a');
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
|
||||
$connection->send('000281800001000200000000047a6c6962026d6c0000010001c00c000100010000003c0004d466323ac00c000100010000001e0004d466323a');
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send['id']=$data->id;
|
||||
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send['id']=$data->id;
|
||||
$send['query']=$data->query;
|
||||
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send['id']=$data->id;
|
||||
$send['query']=$data->query;
|
||||
$send['ttl']=60;
|
||||
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
// 注意直接udp协议是有效的,使用自定义协议无效
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
echo "$type\n$name\n$rip\n";
|
||||
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send['id']=$data->id;
|
||||
$send['query']=$data->query;
|
||||
$send['ttl']=30;
|
||||
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
|
||||
#输出信息
|
||||
#echo "Type: $type \n Domain: $name\n Client IP: $rip \n";
|
||||
|
||||
/** A类记录返回
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send['ttl']=30;
|
||||
**/
|
||||
|
||||
|
||||
$send['type']='NS';
|
||||
$send['detail']='coco.bunny.net';
|
||||
$send['ttl']=30;
|
||||
|
||||
|
||||
|
||||
#id和query一般情况下直接返回输出即可
|
||||
$send['id']=$data->id;
|
||||
$send['query']=$data->query;
|
||||
|
||||
|
||||
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
$worker = new Worker('Dns://172.17.120.40:53');
|
||||
$worker->transport = 'udp';
|
||||
$worker->onMessage = function($connection, $data){
|
||||
$data=json_decode($data);
|
||||
$type=$data->type;
|
||||
$name=$data->name;
|
||||
$rip=$connection->getRemoteIp();
|
||||
|
||||
#输出信息
|
||||
#echo "Type: $type \n Domain: $name\n Client IP: $rip \n";
|
||||
|
||||
/** A类记录返回
|
||||
$send['type']='A';
|
||||
$send['detail']='119.29.29.29';
|
||||
$send['ttl']=30;
|
||||
**/
|
||||
|
||||
|
||||
$send['type']='NS';
|
||||
$send['detail'][1]='coco.bunny.net';
|
||||
$send['detail'][2]='kiki.bunny.net';
|
||||
$send['ttl']=30;
|
||||
|
||||
|
||||
|
||||
#id和query一般情况下直接返回输出即可
|
||||
$send['id']=$data->id;
|
||||
$send['query']=$data->query;
|
||||
|
||||
|
||||
|
||||
$send=json_encode($send);
|
||||
$connection->send($send);
|
||||
|
||||
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// 创建一个Worker监听2345端口,使用http协议通讯
|
||||
$http_worker = new Worker("http://0.0.0.0:2345");
|
||||
|
||||
// 启动4个进程对外提供服务
|
||||
$http_worker->count = 4;
|
||||
|
||||
// 接收到浏览器发送的数据时回复hello world给浏览器
|
||||
$http_worker->onMessage = function(TcpConnection $connection, Request $request)
|
||||
{
|
||||
// 向浏览器发送hello world
|
||||
$connection->send('hello world');
|
||||
};
|
||||
|
||||
// 运行worker
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
// 创建一个Worker监听2345端口,使用http协议通讯
|
||||
$http_worker = new Worker("udp://0.0.0.0:53");
|
||||
|
||||
// 启动4个进程对外提供服务
|
||||
$http_worker->count = 4;
|
||||
|
||||
// 接收到浏览器发送的数据时回复hello world给浏览器
|
||||
$http_worker->onMessage = function(TcpConnection $connection, Request $request)
|
||||
{
|
||||
var_dump($request);
|
||||
// 向浏览器发送hello world
|
||||
$connection->send('hello world');
|
||||
};
|
||||
|
||||
// 运行worker
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://127.0.0.1:9090');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
var_dump($data);
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
var_dump($data);
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
echo($data);
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
echo(bin2hex($data));
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
echo(bin2hex($data));
|
||||
echo "/n";
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
echo(bin2hex($data));
|
||||
echo "\n";
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
echo(substr($data,-8,4));
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
echo(substr($data,-8,4));
|
||||
echo "\n";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
echo $name;
|
||||
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
#$namede=str_split($name,2);
|
||||
|
||||
echo hex2bin($name);
|
||||
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
#$namede=str_split($name,2);
|
||||
|
||||
echo hex2bin('01');
|
||||
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
#$namede=str_split($name,2);
|
||||
|
||||
echo hex2bin('01');
|
||||
if(!hex2bin('01')){
|
||||
echo "none";
|
||||
}
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($str)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
|
||||
echo hex2bin('01');
|
||||
if(!hex2bin('01')){
|
||||
echo "none";
|
||||
}
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($str)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
|
||||
echo "realname";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($str)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
|
||||
echo "$realname";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($chat)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
|
||||
echo "$realname";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://0.0.0.0:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($chat)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
$realname=substr($realname,1,-1);
|
||||
|
||||
echo "$realname";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
use Workerman\Worker;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
use Workerman\Protocols\Http\Request;
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
$udp_worker = new Worker('udp://172.17.120.40:53');
|
||||
$udp_worker->onMessage = function($connection, $data){
|
||||
$data=bin2hex($data);
|
||||
echo($data);
|
||||
echo "\n";
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
echo($type);
|
||||
echo "\n";
|
||||
$name=$type=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($chat)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
$realname=substr($realname,1,-1);
|
||||
|
||||
echo "$realname";
|
||||
|
||||
echo "\n";
|
||||
|
||||
$connection->send('get');
|
||||
};
|
||||
Worker::runAll();
|
||||
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
namespace Workerman\Protocols;
|
||||
class Dns
|
||||
{
|
||||
/**
|
||||
* 检查包的完整性
|
||||
* 如果能够得到包长,则返回包的在buffer中的长度,否则返回0继续等待数据
|
||||
* 如果协议有问题,则可以返回false,当前客户端连接会因此断开
|
||||
* @param string $buffer
|
||||
* @return int
|
||||
*/
|
||||
public static function input($buffer)
|
||||
{
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
||||
/**
|
||||
* 打包,当向客户端发送数据的时候会自动调用
|
||||
* @param string $buffer
|
||||
* @return string
|
||||
*/
|
||||
public static function encode($buffer)
|
||||
{
|
||||
$buffer=json_decode($buffer);
|
||||
$type=$buffer->type;
|
||||
switch($type){
|
||||
case 'A':
|
||||
$type='0001';
|
||||
$lenth='0004';
|
||||
$ip=$buffer->detail;
|
||||
$n=0;
|
||||
foreach($ip as $i){
|
||||
$nss=explode('.',$i);
|
||||
$detail[$n]='';
|
||||
foreach($nss as $part){
|
||||
$tpart=dechex($part);
|
||||
$detail[$n]=$detail[$n].$tpart;
|
||||
};
|
||||
$n+1;
|
||||
};
|
||||
break;
|
||||
case 'NS':
|
||||
$type='0002';
|
||||
$lenth='0004';
|
||||
$ns=$buffer->detail;
|
||||
$n=0;
|
||||
foreach($ns as $i){
|
||||
$nss=explode('.',$i);
|
||||
$detail[$n]='';
|
||||
foreach($nss as $part){
|
||||
$len=strlen($part);
|
||||
$tpart=bin2hex($part);
|
||||
$detail[$n]=$detail[$n].$len.$tpart;
|
||||
};
|
||||
$detail[$n]=$detail[$n].'00';
|
||||
$n+1;
|
||||
};
|
||||
break;
|
||||
}
|
||||
$ttl=str_pad(dechex($buffer->ttl),8,"0",STR_PAD_LEFT);
|
||||
$status='8180';
|
||||
$questions='0001';
|
||||
$AnswerRRs='0001';
|
||||
$AuthorityRRs='0000';
|
||||
$AdditionalRRs='0000';
|
||||
$answer='';
|
||||
foreach($detail as $c){
|
||||
$answer=$answer.'C00C'.$type.'0001'.$ttl.$lenth.$c;
|
||||
}
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query.$answer;
|
||||
|
||||
return hex2bin($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解包,当接收到的数据字节数等于input返回的值(大于0的值)自动调用
|
||||
* 并传递给onMessage回调函数的$data参数
|
||||
* @param string $buffer
|
||||
* @return string
|
||||
*/
|
||||
public static function decode($buffer)
|
||||
{
|
||||
$data=bin2hex($buffer);
|
||||
$id=substr($data,0,4);
|
||||
$type=substr($data,-8,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
}
|
||||
$name=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($chat)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
$realname=substr($realname,1,-1);
|
||||
$query=substr($data,24);
|
||||
|
||||
#$returndata="$type".'|||'."$realname";
|
||||
$returndata= json_encode(array('type' => "$type", 'name' => "$realname", 'id'=>"$id", 'query'=>"$query"));
|
||||
|
||||
return $returndata;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user