This commit is contained in:
2025-01-07 18:04:33 +08:00
parent 25a5790929
commit b45c747ba4
3 changed files with 33 additions and 27 deletions

Binary file not shown.

View File

@@ -1,7 +1,6 @@
package main package main
import ( import (
"bytes"
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
@@ -36,6 +35,32 @@ func isValidIP(ip string) bool {
return net.ParseIP(ip) != nil return net.ParseIP(ip) != nil
} }
func SaveBytesToFile(data []byte, filename string, syncToDisk bool) error {
if filename == "" {
return fmt.Errorf("filename cannot be empty")
}
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0600)
if err != nil {
return fmt.Errorf("failed to open file %q: %w", filename, err)
}
defer file.Close()
_, err = file.Write(data)
if err != nil {
return fmt.Errorf("failed to write to file %q: %w", filename, err)
}
if syncToDisk {
err = file.Sync()
if err != nil {
return fmt.Errorf("failed to sync data to disk for file %q: %w", filename, err)
}
}
return nil
}
func main() { func main() {
var ( var (
err error err error
@@ -105,11 +130,11 @@ func main() {
if err != nil { if err != nil {
log.Fatalf("读取响应体时出错: %v", err) log.Fatalf("读取响应体时出错: %v", err)
} }
// 使用 bytes.Buffer 拼接 []byte 和字符串
var buffer bytes.Buffer // 保存响应体到文件(可选)
buffer.Write(HTTP_BODY) if err := SaveBytesToFile(append(HTTP_BODY, '\n'), "response.json", true); err != nil {
buffer.WriteString("\n") log.Printf("failed to save HTTP response to file: %v", err)
SaveBytesToFile(buffer.Bytes(), "response.json") }
// 解析 JSON 数据 // 解析 JSON 数据
err = json.Unmarshal(HTTP_BODY, &HTPP_JSON) err = json.Unmarshal(HTTP_BODY, &HTPP_JSON)
@@ -124,24 +149,3 @@ func main() {
fmt.Printf("Error!\n") fmt.Printf("Error!\n")
} }
} }
func SaveBytesToFile(data []byte, filename string) error {
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return fmt.Errorf("failed to open file: %w", err)
}
defer file.Close()
_, err = file.Write(data)
if err != nil {
return fmt.Errorf("failed to write to file: %w", err)
}
// 如果你想要在每次写入后立即同步数据到磁盘(可选)
err = file.Sync()
if err != nil {
return fmt.Errorf("failed to sync data to disk: %w", err)
}
return nil
}

View File

@@ -4,3 +4,5 @@
{"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.4"} {"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.4"}
{"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.5"} {"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.5"}
{"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.6"} {"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.6"}
{"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.7"}
{"code":"Success","data":{"continent":"北美洲","country":"美国","zipcode":"","owner":"","isp":"Cloudflare, Inc.","adcode":"","prov":"","city":"","district":""},"ip":"1.1.1.8"}