国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

Workerman DNS協(xié)議

EchoNoch

先上倉(cāng)庫(kù):
Repo
Github


相關(guān):Webman插件

Webman插件市場(chǎng)

Repo

composer require laysense/dns
#注:這是webman用的不是workerman用的

截圖

截圖


Workerman-DNS

Workerman的DNS協(xié)議,實(shí)現(xiàn)了簡(jiǎn)單的DNS協(xié)議解析和響應(yīng),通過(guò)本協(xié)議支持,您可以利用Workerman實(shí)現(xiàn)基于PHP的Dns服務(wù)器

您既可以實(shí)現(xiàn)遞歸服務(wù)器,進(jìn)行DNS優(yōu)化、加速、抗污染

也可以作為權(quán)威服務(wù)器,進(jìn)行任意的DNS響應(yīng),甚至DNS優(yōu)選,配合監(jiān)控實(shí)現(xiàn)CDN和負(fù)載均衡

目前支持以下DNS類型:

  • A
  • AAAA
  • CNAME
  • SOA
  • PTR
  • MX
  • TXT

本倉(cāng)庫(kù)內(nèi)vendor文件夾為Workerman 您可以刪除,

直接將本倉(cāng)庫(kù)根目錄下的 Dns.php 放置到您的Workerman項(xiàng)目中的 /vendor/workerman/workerman/Protocols 目錄下


使用方式:

詳見start.php 文件

注意:使用53端口需要root權(quán)限

1.監(jiān)聽端口

<?php
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
use Workerman\Protocols\Http\Request;
require_once __DIR__ . '/php-ipv6.php'; #IPv6支持
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('Dns://0.0.0.0:53');
$worker->transport = 'udp';

2.獲取查詢內(nèi)容

$worker->onMessage = function($connection, $data){
$data=json_decode($data);
$type=$data->type; #查詢類型
$name=$data->name; #查詢內(nèi)容(一般是域名,PTR時(shí)為倒序IP)
$rip=$connection->getRemoteIp(); #客戶端IP

#輸出信息
echo "\n Type:$type \n Domain: $name\n Client IP: $rip \n";

}

3.響應(yīng)A記錄

$worker->onMessage = function($connection, $data){

$send['type']='A';
$send['detail'][1]='119.29.29.29';  #第一條記錄
$send['detail'][2]='8.8.8.8';       #第二條記錄
$send['ttl']=30;

#id和query一般情況下直接返回輸出即可
$send['id']=$data->id;
$send['query']=$data->query;

$send=json_encode($send);
$connection->send($send);

};
Worker::runAll();

4.響應(yīng)其他記錄

見start.php 內(nèi)有所有記錄類型的響應(yīng)方式

5.說(shuō)明

您應(yīng)當(dāng)通過(guò)獲取query的 $name通過(guò)查詢數(shù)據(jù)庫(kù)等方式返回?cái)?shù)據(jù),對(duì)于不存在的記錄應(yīng)當(dāng)返回SOA記錄

您需要的時(shí)候可以通過(guò) dns_get_record()向上級(jí)DNS遞歸查找并緩存

這一系列操作,本協(xié)議不提供,您可以自行通過(guò)Redis等并利用workerman實(shí)現(xiàn)

不建議作為根域名的NS服務(wù)器使用 (如果作為必須提供自定義SOA)。

已知問(wèn)題

本協(xié)議最早寫于鄙人剛學(xué)習(xí)php的階段,現(xiàn)在翻出來(lái)無(wú)疑是屎山一坨,代碼寫的和xxs一樣,性能不敢測(cè)試,還請(qǐng)各位大佬包容

目前已知問(wèn)題是:

域名不存在時(shí)可能出現(xiàn)BUG

1742 4 1
4個(gè)評(píng)論

Tinywan

直接寫個(gè)webman的插件

aria

有計(jì)劃開發(fā)支持動(dòng)態(tài)IP的功能嗎?

  • admin 2022-12-22

    完全可以自己實(shí)現(xiàn),這算業(yè)務(wù)層了,他已經(jīng)給你提供了協(xié)議層,過(guò)度分裝 其他人會(huì)不好

  • EchoNoch 2022-12-22

    如果想實(shí)現(xiàn)的是ddns,直接給一個(gè)子域名開ns,然后自己php去curl一個(gè)ip接口,自己實(shí)現(xiàn)下就行了

admin

如果有空,可以開發(fā)一個(gè) ssh server偽服務(wù)端, go就有這個(gè)包。 可以自定義控制 ssh client發(fā)來(lái)的消息 和返回

  • EchoNoch 2022-12-22

    這個(gè)我想過(guò)來(lái)著,可以做蜜罐之類的好玩的東西,回頭有空研究下

  • EchoNoch 2022-12-22

    好吧淺看了下ssh協(xié)議的加密實(shí)現(xiàn)部分太復(fù)雜了(github上面好像有一個(gè)開源的php原生實(shí)現(xiàn))

  • admin 2022-12-25

    所以,拿過(guò)來(lái)改到workerman試試

gddd

這東西是干啥用的,沒(méi)接觸過(guò)

  • EchoNoch 2022-12-27

    實(shí)現(xiàn)自定義dns服務(wù)器

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表評(píng)論

EchoNoch

300
積分
0
獲贊數(shù)
0
粉絲數(shù)
2022-04-29 加入
??