Files
nofx/proxy/fixed_provider.go
T
2025-11-05 21:41:36 -05:00

43 lines
1.1 KiB
Go

package proxy
import "strings"
// FixedIPProvider 固定IP列表提供者
type FixedIPProvider struct {
ips []ProxyIP
}
// NewFixedIPProvider 创建固定IP列表提供者
func NewFixedIPProvider(proxyURLs []string) *FixedIPProvider {
ips := make([]ProxyIP, 0, len(proxyURLs))
for _, proxyURL := range proxyURLs {
// 简单解析代理URL
// 格式: http://ip:port 或 socks5://user:pass@ip:port
protocol := "http"
if strings.HasPrefix(proxyURL, "socks5://") {
protocol = "socks5"
proxyURL = strings.TrimPrefix(proxyURL, "socks5://")
} else if strings.HasPrefix(proxyURL, "http://") {
proxyURL = strings.TrimPrefix(proxyURL, "http://")
} else if strings.HasPrefix(proxyURL, "https://") {
protocol = "https"
proxyURL = strings.TrimPrefix(proxyURL, "https://")
}
ips = append(ips, ProxyIP{
IP: proxyURL,
Protocol: protocol,
})
}
return &FixedIPProvider{ips: ips}
}
func (p *FixedIPProvider) GetIPList() ([]ProxyIP, error) {
return p.ips, nil
}
func (p *FixedIPProvider) RefreshIPList() ([]ProxyIP, error) {
return p.ips, nil
}