dnsmgr/app/lib/DnsHelper.php

115 lines
3.2 KiB
PHP
Raw Normal View History

2024-04-03 20:51:10 +08:00
<?php
namespace app\lib;
use think\facade\Db;
class DnsHelper
{
public static $dns_config = [
'aliyun' => [
'name' => '阿里云',
'config' => [
'ak' => 'AccessKeyId',
'sk' => 'AccessKeySecret'
],
'remark' => 1, //是否支持备注1单独设置备注2和记录一起设置
'status' => true, //是否支持启用暂停
'redirect' => true, //是否支持域名转发
'log' => true, //是否支持查看日志
],
'dnspod' => [
'name' => '腾讯云',
'config' => [
'ak' => 'SecretId',
'sk' => 'SecretKey'
],
'remark' => 1,
'status' => true,
'redirect' => true,
'log' => true,
],
'huawei' => [
'name' => '华为云',
'config' => [
'ak' => 'AccessKeyId',
'sk' => 'SecretAccessKey'
],
'remark' => 2,
'status' => true,
'redirect' => false,
'log' => false,
],
'west' => [
'name' => '西部数码',
'config' => [
'ak' => '用户名',
'sk' => 'API密码'
],
'remark' => 0,
2024-04-18 19:35:14 +08:00
'status' => true,
2024-04-03 20:51:10 +08:00
'redirect' => false,
'log' => false,
],
2024-04-17 11:16:37 +08:00
'dnsla' => [
'name' => 'DNSLA',
'config' => [
'ak' => 'APIID',
'sk' => 'API密钥'
],
'remark' => 0,
'status' => true,
'redirect' => true,
'log' => false,
],
2024-04-03 20:51:10 +08:00
'cloudflare' => [
'name' => 'Cloudflare',
'config' => [
'ak' => '邮箱地址',
'sk' => 'API密钥'
],
'remark' => 2,
2024-04-17 11:16:37 +08:00
'status' => true,
2024-04-03 20:51:10 +08:00
'redirect' => false,
'log' => false,
],
];
public static function getList()
{
return self::$dns_config;
}
private static function getConfig($aid){
$account = Db::name('account')->where('id', $aid)->find();
if(!$account) return false;
return $account;
}
public static function getModel($aid, $domain = null, $domainid = null)
{
$config = self::getConfig($aid);
if(!$config) return false;
$dnstype = $config['type'];
$class = "\\app\\lib\\dns\\{$dnstype}";
if(class_exists($class)){
$config['domain'] = $domain;
$config['domainid'] = $domainid;
$model = new $class($config);
return $model;
}
return false;
}
2024-04-18 19:35:14 +08:00
public static function getModel2($config)
{
$dnstype = $config['type'];
$class = "\\app\\lib\\dns\\{$dnstype}";
if(class_exists($class)){
$config['domain'] = $config['name'];
$config['domainid'] = $config['thirdid'];
$model = new $class($config);
return $model;
}
return false;
}
2024-04-03 20:51:10 +08:00
}