Stories

Detail Return Return

批量檢查微信域名是否被封的Go代碼 - Stories Detail

概述:

這段Go代碼使用 https://api.52an.fun/wx/?url={url} 接口批量檢查多個微信域名是否被封。接口返回的JSON格式中,status 字段為 1 表示域名正常,status0 表示域名被封禁,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 "未知狀態"
}

代碼介紹:

  1. 請求接口:代碼通過 http.Get 方法發送GET請求,查詢微信域名的狀態。URL 需要傳入要檢查的域名。
  2. 數據解析:響應的數據格式為JSON,代碼使用 json.NewDecoder 方法解析響應數據,映射到 CheckResult 結構體中。結構體中包含了 statusmessage 字段。
  3. 批量檢查:程序定義了一個 urls 列表,存儲需要檢查的微信域名。通過循環遍歷 urls,代碼會批量請求每個域名的狀態。
  4. 結果輸出:根據返回的 status 字段,代碼輸出每個域名的狀態。如果 status1,表示域名正常;如果 status0,表示域名被封禁,並且會顯示封禁原因。
  5. 錯誤處理:如果請求失敗(如網絡問題、接口錯誤),程序會捕獲並輸出錯誤信息。同時,如果JSON解析失敗,也會顯示相應的錯誤。

使用方法:

  1. 依賴:該代碼不依賴於任何外部庫,Go語言內置了HTTP請求和JSON解析功能。
  2. 運行程序:在Go環境下,直接將上述代碼保存到文件中(例如 main.go),然後運行程序。程序會輸出每個域名的狀態。

示例輸出:

域名: https://mp.weixin.qq.com, 狀態: 正常
域名: https://someblockedwechat.com, 狀態: 被封禁,原因:域名不允許訪問
域名: https://anotherwechatdomain.com, 狀態: 正常

擴展功能:

  • 多線程支持:為提高批量檢查效率,可以使用Go的併發機制(如 goroutines)來並行檢查多個域名的狀態。
  • 日誌記錄:可以將每次檢查的結果記錄到日誌文件中,便於後續查看和分析。

Add a new Comments

Some HTML is okay.