MCPcopy Create free account
hub / github.com/MengMengCode/GetRealityDomain / ExportRealityConfig

Function ExportRealityConfig

output.go:353–405  ·  view source on GitHub ↗

ExportRealityConfig 导出Reality配置文件

(filename string, configFile string)

Source from the content-addressed store, hash-verified

351
352// ExportRealityConfig 导出Reality配置文件
353func ExportRealityConfig(filename string, configFile string) error {
354 file, err := os.Open(filename)
355 if err != nil {
356 return fmt.Errorf("打开文件失败: %v", err)
357 }
358 defer file.Close()
359
360 reader := csv.NewReader(file)
361 records, err := reader.ReadAll()
362 if err != nil {
363 return fmt.Errorf("读取CSV文件失败: %v", err)
364 }
365
366 // 查找符合条件的记录
367 var feasibleTargets [][]string
368 for i, record := range records {
369 if i == 0 { // 跳过头部
370 continue
371 }
372
373 if len(record) >= 10 && record[9] == "true" { // FEASIBLE字段
374 feasibleTargets = append(feasibleTargets, record)
375 }
376 }
377
378 if len(feasibleTargets) == 0 {
379 return fmt.Errorf("没有找到符合条件的目标")
380 }
381
382 // 创建配置文件
383 configFileHandle, err := os.Create(configFile)
384 if err != nil {
385 return fmt.Errorf("创建配置文件失败: %v", err)
386 }
387 defer configFileHandle.Close()
388
389 // 写入Reality配置模板
390 fmt.Fprintf(configFileHandle, "# Reality目标配置文件\n")
391 fmt.Fprintf(configFileHandle, "# 生成时间: %s\n", time.Now().Format("2006-01-02 15:04:05"))
392 fmt.Fprintf(configFileHandle, "# 总共找到 %d 个符合条件的目标\n\n", len(feasibleTargets))
393
394 for i, record := range feasibleTargets {
395 fmt.Fprintf(configFileHandle, "# 目标 %d\n", i+1)
396 fmt.Fprintf(configFileHandle, "dest: %s:443\n", record[0]) // IP
397 fmt.Fprintf(configFileHandle, "serverNames: [\"%s\"]\n", record[3]) // CERT_DOMAIN
398 fmt.Fprintf(configFileHandle, "# 地理位置: %s\n", record[8]) // GEO_CODE
399 fmt.Fprintf(configFileHandle, "# 证书颁发者: %s\n", record[4]) // CERT_ISSUER
400 fmt.Fprintf(configFileHandle, "# 响应时间: %sms\n\n", record[10]) // RESPONSE_TIME_MS
401 }
402
403 printSuccess(fmt.Sprintf("Reality配置已导出到: %s", configFile))
404 return nil
405}

Callers

nothing calls this directly

Calls 2

printSuccessFunction · 0.85
CloseMethod · 0.45

Tested by

no test coverage detected