概述:
这段Go代码使用 https://api.52an.fun/wx/?url={url}
接口批量检查多个微信域名是否被封。接口返回的JSON格式中,status
字段为 1
表示域名正常,status
为 0
表示域名被封禁,message
字段会提供封禁的具体信息。程序会根据返回结果输出每个域名的状态。
Go代码示例:
package main
import (
"encoding/json"
"fmt"
"net/http"
"time"
)
type CheckResult struct {
Status int `json:"status"`
Message string `json:"message"`
}
var urls = []string{
"https://mp.weixin.qq.com", // 示例1
"https://someblockedwechat.com", // 示例2
"https://anotherwechatdomain.com", // 示例3
// 可以继续添加更多的域名
}
const apiURL = "https://api.52an.fun/wx/?url="
func main() {
// 批量检查域名状态
for _, url := range urls {
status := checkDomainStatus(url)
fmt.Printf("域名: %s, 状态: %s\n", url, status)
}
}
// 请求接口检查域名状态
func checkDomainStatus(url string) string {
// 创建请求URL
requestURL := apiURL + url
client := &http.Client{Timeout: 10 * time.Second}
// 发起GET请求
resp, err := client.Get(requestURL)
if err != nil {
return fmt.Sprintf("请求失败: %v", err)
}
defer resp.Body.Close()
// 解析返回的JSON
var result CheckResult
if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
return fmt.Sprintf("JSON解析失败: %v", err)
}
// 根据返回的状态判断
if result.Status == 1 {
return "正常"
} else if result.Status == 0 {
return "被封禁,原因:" + result.Message
}
return "未知状态"
}
代码介绍:
- 请求接口:代码通过
http.Get
方法发送GET请求,查询微信域名的状态。URL 需要传入要检查的域名。 - 数据解析:响应的数据格式为JSON,代码使用
json.NewDecoder
方法解析响应数据,映射到CheckResult
结构体中。结构体中包含了status
和message
字段。 - 批量检查:程序定义了一个
urls
列表,存储需要检查的微信域名。通过循环遍历urls
,代码会批量请求每个域名的状态。 - 结果输出:根据返回的
status
字段,代码输出每个域名的状态。如果status
为1
,表示域名正常;如果status
为0
,表示域名被封禁,并且会显示封禁原因。 - 错误处理:如果请求失败(如网络问题、接口错误),程序会捕获并输出错误信息。同时,如果JSON解析失败,也会显示相应的错误。
使用方法:
- 依赖:该代码不依赖于任何外部库,Go语言内置了HTTP请求和JSON解析功能。
- 运行程序:在Go环境下,直接将上述代码保存到文件中(例如
main.go
),然后运行程序。程序会输出每个域名的状态。
示例输出:
域名: https://mp.weixin.qq.com, 状态: 正常
域名: https://someblockedwechat.com, 状态: 被封禁,原因:域名不允许访问
域名: https://anotherwechatdomain.com, 状态: 正常
扩展功能:
- 多线程支持:为提高批量检查效率,可以使用Go的并发机制(如 goroutines)来并行检查多个域名的状态。
- 日志记录:可以将每次检查的结果记录到日志文件中,便于后续查看和分析。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。