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

DNS服務器插件

dev-master 版本
2024-02-06 版本更新時間
20 安裝
0 star

簡介

Webman的DNS服務器插件,可以實現(xiàn)Webman啟動時運行一個DNS服務器

注意:默認為udp53端口,需要ROOT權(quán)限

Github

LaysenseRepo


客觀來說,相比bind9(named)等成熟的C語言的DNS服務器來說,具有一定的差距,但勝在開發(fā)便捷,拓展容易。
當前僅供測試玩耍,建議不要用于關(guān)鍵用途


支持的DNS類型:

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

最新版本已經(jīng)增加了CNAME+A和CNAME+AAAA方式

安裝

composer require laysense/dns

配置

配置文件位于 /config/plugin/laysense/dns/process.php

<?php
return [
    'Dns' => [
        'handler' => process\DnsProcess::class,
        'listen'  => 'Dns://0.0.0.0:53',  #使用的端口,53端口需要root權(quán)限
        'transport'  => 'udp',
        'count' => cpu_count() * 4        #線程數(shù)量
    ],
];

使用

為了方便您的使用,本插件(不要臉地)導入了一個Controller

位于 /app/controller/DnsController.php

【如果這影響到了您的項目和您的開發(fā)習慣,請修改/process/DnsProcess.php 文件】

安裝前請先保障文件不沖突

本DNS插件只提供了一個DNS請求和響應的接口,其余的數(shù)據(jù)庫、DNS查詢、多級緩存、遞歸等需要您自行實現(xiàn)

該Controller名存實亡,其實就是一個class

<?php

namespace app\controller;
include_once base_path().'/vendor/laysense/dns/src/resource/ipv6.php';
use dnstools\ipv6;      #用于IPv6相關(guān)
/**
 * $ipv6=new IPv6;
 * $ipv6->ip2bin($ip);
 */

class DnsController
{
    public function DNS($type,$name,$rip,$id,$query)
    {
        #輸出信息
        #echo "\n Type:$type \n Domain: $name\n Client IP: $rip \n";

        #此處請根據(jù)業(yè)務需要,通過判斷$name和$rip返回正確的數(shù)據(jù)
        #詳情請參見 https://github.com/ywnsya/workerman-dns 尤其是 https://github.com/ywnsya/Workerman-DNS/blob/master/start.php 中的用法

        $send['detail']='dns.laysense.com';
        $send['ttl']=30;
        $send['type']='PTR';

        #此處無需修改
        $send['id']=$id;
        $send['query']=$query;
        $return=json_encode($send);
        return $return;
    }
}

具體的使用方式請參照 Workerman-DNS (Github) 下的start.php

效果圖(可選)

贊助商