mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package dnsclients
 | 
						|
 | 
						|
import "github.com/iwind/TeaGo/maps"
 | 
						|
 | 
						|
type ProviderType = string
 | 
						|
 | 
						|
// 服务商代号
 | 
						|
const (
 | 
						|
	ProviderTypeDNSPod     ProviderType = "dnspod"
 | 
						|
	ProviderTypeAliDNS     ProviderType = "alidns"
 | 
						|
	ProviderTypeDNSCom     ProviderType = "dnscom"
 | 
						|
	ProviderTypeCloudFlare ProviderType = "cloudFlare"
 | 
						|
	ProviderTypeCustomHTTP ProviderType = "customHTTP"
 | 
						|
)
 | 
						|
 | 
						|
// AllProviderTypes 所有的服务商类型
 | 
						|
var AllProviderTypes = []maps.Map{
 | 
						|
	{
 | 
						|
		"name": "阿里云DNS",
 | 
						|
		"code": ProviderTypeAliDNS,
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"name": "DNSPod",
 | 
						|
		"code": ProviderTypeDNSPod,
 | 
						|
	},
 | 
						|
	/**{
 | 
						|
		"name": "帝恩思DNS.COM",
 | 
						|
		"code": ProviderTypeDNSCom,
 | 
						|
	},**/
 | 
						|
	{
 | 
						|
		"name": "CloudFlare DNS",
 | 
						|
		"code": ProviderTypeCloudFlare,
 | 
						|
	},
 | 
						|
	{
 | 
						|
		"name": "自定义HTTP DNS",
 | 
						|
		"code": ProviderTypeCustomHTTP,
 | 
						|
	},
 | 
						|
}
 | 
						|
 | 
						|
// FindProvider 查找服务商实例
 | 
						|
func FindProvider(providerType ProviderType) ProviderInterface {
 | 
						|
	switch providerType {
 | 
						|
	case ProviderTypeDNSPod:
 | 
						|
		return &DNSPodProvider{}
 | 
						|
	case ProviderTypeAliDNS:
 | 
						|
		return &AliDNSProvider{}
 | 
						|
	case ProviderTypeCloudFlare:
 | 
						|
		return &CloudFlareProvider{}
 | 
						|
	case ProviderTypeCustomHTTP:
 | 
						|
		return &CustomHTTPProvider{}
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
 | 
						|
// FindProviderTypeName 查找服务商名称
 | 
						|
func FindProviderTypeName(providerType ProviderType) string {
 | 
						|
	for _, t := range AllProviderTypes {
 | 
						|
		if t.GetString("code") == providerType {
 | 
						|
			return t.GetString("name")
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return ""
 | 
						|
}
 |