介绍
本文介绍了使用Go语言实现的多个平台域名封禁检测工具,包括QQ、微信、抖音域名检测以及微信小程序状态检测。每个检测模块都针对相应平台的API进行了封装,提供了简单易用的接口。
代码实现
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// 检测QQ域名状态
func CheckQQDomain(domain string) (map[string]interface{}, error) {
apiURL := "https://api.qq.check.com/check" // 替换为实际API地址
resp, err := http.Get(apiURL + "?url=" + url.QueryEscape(domain))
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var result map[string]interface{}
err = json.Unmarshal(body, &result)
if err != nil {
return nil, err
}
// 转换状态格式
if status, ok := result["status"]; ok {
if statusStr, ok := status.(string); ok && statusStr == "1" {
result["status"] = "1"
result["message"] = "域名正常"
} else {
result["status"] = "0"
result["message"] = "域名被封禁"
}
}
return result, nil
}
// 检测微信域名状态
func CheckWechatDomain(domain string) (map[string]interface{}, error) {
apiURL := "https://api.wechat.check.com/check" // 替换为实际API地址
resp, err := http.Get(apiURL + "?url=" + url.QueryEscape(domain))
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var result map[string]interface{}
err = json.Unmarshal(body, &result)
if err != nil {
return nil, err
}
// 转换状态格式
if status, ok := result["status"]; ok {
if statusNum, ok := status.(float64); ok {
if statusNum == 2 {
result["status"] = "1"
result["message"] = "域名正常"
} else if statusNum == 1 {
result["status"] = "0"
result["message"] = "域名被拦截"
} else {
result["status"] = "0"
result["message"] = "域名被封禁"
}
}
}
return result, nil
}
// 检测抖音域名状态
func CheckDouyinDomain(domain string) (map[string]interface{}, error) {
apiURL := "https://api.douyin.check.com/check" // 替换为实际API地址
if domain == "" {
return map[string]interface{}{
"status": "error",
"message": "URL 不能为空",
}, nil
}
resp, err := http.Get(apiURL + "?url=" + url.QueryEscape(domain))
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var result map[string]interface{}
err = json.Unmarshal(body, &result)
if err != nil {
return nil, err
}
// 转换状态格式
if status, ok := result["status"]; ok {
if statusStr, ok := status.(string); ok && statusStr == "1" {
result["status"] = "1"
result["message"] = "域名正常"
} else {
result["status"] = "0"
result["message"] = "域名被封禁"
}
}
return result, nil
}
// 检测微信小程序状态
func CheckWechatMiniProgram(appid string) (map[string]interface{}, error) {
apiURL := "https://api.wechat.mini.check.com/check" // 替换为实际API地址
resp, err := http.Get(apiURL + "?appid=" + url.QueryEscape(appid))
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var result map[string]interface{}
err = json.Unmarshal(body, &result)
if err != nil {
return nil, err
}
// 转换状态格式
if code, ok := result["code"]; ok {
if codeNum, ok := code.(float64); ok && codeNum == 0 {
result["code"] = "0"
result["status"] = "已被封禁,封禁原因:存在绕开、规避或对抗平台审核监管的行为"
} else {
result["code"] = "1"
result["status"] = "正常"
}
}
return result, nil
}
func main() {
// 示例用法
qqResult, _ := CheckQQDomain("example.com")
qqJson, _ := json.Marshal(qqResult)
fmt.Println("QQ域名检测结果:", string(qqJson))
wechatResult, _ := CheckWechatDomain("example.com")
wechatJson, _ := json.Marshal(wechatResult)
fmt.Println("微信域名检测结果:", string(wechatJson))
douyinResult, _ := CheckDouyinDomain("example.com")
douyinJson, _ := json.Marshal(douyinResult)
fmt.Println("抖音域名检测结果:", string(douyinJson))
miniProgramResult, _ := CheckWechatMiniProgram("wx81894c6dbb81c2e2")
miniProgramJson, _ := json.Marshal(miniProgramResult)
fmt.Println("微信小程序检测结果:", string(miniProgramJson))
}
使用方法
- 将上述代码保存为
domain_check.go
- 安装Go语言环境(1.16或更高版本)
- 运行程序:
go run domain_check.go
- 根据需要调用相应的检测函数
单独使用某个检测功能
// 检测QQ域名
result, err := CheckQQDomain("your-domain.com")
// 检测微信域名
result, err := CheckWechatDomain("your-domain.com")
// 检测抖音域名
result, err := CheckDouyinDomain("your-domain.com")
// 检测微信小程序
result, err := CheckWechatMiniProgram("your-appid")
返回结果格式
QQ域名检测
{"status":"1","message":"域名正常"}
- status为1是正常,为0是被封
微信域名检测
{"status":"1","message":"域名正常"}
- status为1是被拦截,为0是被封,2是正常
抖音域名检测
{"status":"1","message":"域名正常"}
- status为1是正常,为0是被封
微信小程序检测
{"code":0,"appid":"wx81894c6dbb81c2e2","status":"已被封禁,封禁原因:存在绕开、规避或对抗平台审核监管的行为"}
- code为1是正常,为0是被封
注意:实际使用时需要将API地址替换为真实的检测接口地址。