mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package dnsclients
 | 
						||
 | 
						||
import (
 | 
						||
	"github.com/iwind/TeaGo/maps"
 | 
						||
)
 | 
						||
 | 
						||
type ProviderType = string
 | 
						||
 | 
						||
// 服务商代号
 | 
						||
const (
 | 
						||
	ProviderTypeDNSPod       ProviderType = "dnspod"       // DNSPod
 | 
						||
	ProviderTypeAliDNS       ProviderType = "alidns"       // 阿里云DNS
 | 
						||
	ProviderTypeHuaweiDNS    ProviderType = "huaweiDNS"    // 华为DNS
 | 
						||
	ProviderTypeCloudFlare   ProviderType = "cloudFlare"   // CloudFlare DNS
 | 
						||
	ProviderTypeLocalEdgeDNS ProviderType = "localEdgeDNS" // 和当前系统集成的EdgeDNS
 | 
						||
	ProviderTypeEdgeDNSAPI   ProviderType = "edgeDNSAPI"   // 通过API连接的EdgeDNS
 | 
						||
	ProviderTypeCustomHTTP   ProviderType = "customHTTP"   // 自定义HTTP接口
 | 
						||
)
 | 
						||
 | 
						||
// FindAllProviderTypes 所有的服务商类型
 | 
						||
func FindAllProviderTypes() []maps.Map {
 | 
						||
	var typeMaps = []maps.Map{
 | 
						||
		{
 | 
						||
			"name":        "阿里云DNS",
 | 
						||
			"code":        ProviderTypeAliDNS,
 | 
						||
			"description": "阿里云提供的DNS服务。",
 | 
						||
		},
 | 
						||
		{
 | 
						||
			"name":        "DNSPod",
 | 
						||
			"code":        ProviderTypeDNSPod,
 | 
						||
			"description": "DNSPod提供的DNS服务。",
 | 
						||
		},
 | 
						||
		{
 | 
						||
			"name":        "华为云DNS",
 | 
						||
			"code":        ProviderTypeHuaweiDNS,
 | 
						||
			"description": "华为云解析DNS。",
 | 
						||
		},
 | 
						||
		{
 | 
						||
			"name":        "CloudFlare DNS",
 | 
						||
			"code":        ProviderTypeCloudFlare,
 | 
						||
			"description": "CloudFlare提供的DNS服务。",
 | 
						||
		},
 | 
						||
		{
 | 
						||
			"name":        "EdgeDNS API",
 | 
						||
			"code":        ProviderTypeEdgeDNSAPI,
 | 
						||
			"description": "通过API连接GoEdge商业版系统提供的DNS服务。",
 | 
						||
		},
 | 
						||
	}
 | 
						||
 | 
						||
	typeMaps = filterTypeMaps(typeMaps)
 | 
						||
 | 
						||
	typeMaps = append(typeMaps, maps.Map{
 | 
						||
		"name":        "自定义HTTP DNS",
 | 
						||
		"code":        ProviderTypeCustomHTTP,
 | 
						||
		"description": "通过自定义的HTTP接口提供DNS服务,具体使用方法请参考官网文档:https://goedge.cn/docs/DNS/CustomHTTP.md ",
 | 
						||
	})
 | 
						||
	return typeMaps
 | 
						||
}
 | 
						||
 | 
						||
// FindProviderTypeName 查找服务商名称
 | 
						||
func FindProviderTypeName(providerType ProviderType) string {
 | 
						||
	for _, t := range FindAllProviderTypes() {
 | 
						||
		if t.GetString("code") == providerType {
 | 
						||
			return t.GetString("name")
 | 
						||
		}
 | 
						||
	}
 | 
						||
	return ""
 | 
						||
}
 |