50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"dns-server/config"
|
|
"dns-server/shield"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
// 创建默认Shield配置
|
|
shieldCfg := &config.ShieldConfig{
|
|
LocalRulesFile: "data/rules.txt",
|
|
}
|
|
|
|
// 创建ShieldManager
|
|
shieldManager := shield.NewShieldManager(shieldCfg)
|
|
|
|
// 添加一条测试规则
|
|
rule := "||test.example.com"
|
|
err := shieldManager.AddRule(rule)
|
|
if err != nil {
|
|
log.Fatalf("添加规则失败: %v", err)
|
|
}
|
|
fmt.Printf("添加规则 %s 成功\n", rule)
|
|
|
|
// 验证规则是否被添加
|
|
localRules := shieldManager.GetLocalRules()
|
|
fmt.Printf("添加规则后,本地规则数量: %d\n", len(localRules["domainRules"].([]string)))
|
|
|
|
// 删除规则
|
|
err = shieldManager.RemoveRule(rule + "^")
|
|
if err != nil {
|
|
log.Fatalf("删除规则失败: %v", err)
|
|
}
|
|
fmt.Printf("删除规则 %s 成功\n", rule)
|
|
|
|
// 验证规则是否被删除
|
|
localRules = shieldManager.GetLocalRules()
|
|
fmt.Printf("删除规则后,本地规则数量: %d\n", len(localRules["domainRules"].([]string)))
|
|
|
|
// 验证文件内容
|
|
fileContent, err := os.ReadFile("data/rules.txt")
|
|
if err != nil {
|
|
log.Fatalf("读取规则文件失败: %v", err)
|
|
}
|
|
fmt.Printf("规则文件内容: %s\n", string(fileContent))
|
|
}
|