介绍

本文介绍了如何使用 PHP 实现批量检查多个 QQ 域名是否被封。我们将通过向指定的接口发送请求来验证这些域名的状态,检查是否存在封禁的情况。通过使用 cURL 扩展,发送批量请求并分析响应结果,我们能够及时获得各个 QQ 域名的状态信息,以便进行进一步的处理。

功能概述:

  • 向多个 QQ 域名发送请求,检查是否被封。
  • 处理返回的 JSON 数据,提取状态信息和错误消息。
  • 输出每个请求的结果,帮助判断哪些域名被封,哪些正常。

代码实现

<?php

// 批量检查QQ域名是否被封
function batchCheckQQDomainStatus($domains) {
    $results = [];
    $ch = curl_init();
    
    // 设置 cURL 请求选项
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间
    curl_setopt($ch, CURLOPT_HEADER, false);
    
    foreach ($domains as $domain) {
        curl_setopt($ch, CURLOPT_URL, "https://down.ychengsnsm.com/qq/api.php?url=" . urlencode($domain)); // 请求接口

        // 执行请求并获取响应
        $response = curl_exec($ch);
        
        // 检查是否请求成功
        if(curl_errno($ch)) {
            $results[] = [
                "domain" => $domain,
                "status" => "error",
                "message" => curl_error($ch)
            ];
        } else {
            // 解析 JSON 响应
            $json = json_decode($response, true);
            if ($json) {
                $results[] = [
                    "domain" => $domain,
                    "status" => $json['status'],
                    "message" => $json['message'],
                    "info" => $json['info']
                ];
            } else {
                $results[] = [
                    "domain" => $domain,
                    "status" => "error",
                    "message" => "Invalid JSON response"
                ];
            }
        }
    }
    
    // 关闭 cURL
    curl_close($ch);
    
    return $results;
}

// 示例QQ域名列表
$domains = [
    "qq.com",
    "qq.cn",
    "example.com"
];

// 批量检查
$response = batchCheckQQDomainStatus($domains);

// 输出结果
foreach ($response as $result) {
    echo "Domain: " . $result['domain'] . "\n";
    echo "Status: " . $result['status'] . "\n";
    echo "Message: " . $result['message'] . "\n";
    echo "Info: " . $result['info'] . "\n\n";
}

?>

代码解释

  1. batchCheckQQDomainStatus 函数

    • 该函数接受一个域名数组作为参数。
    • 使用 cURL 向每个 QQ 域名发送请求,检查其是否被封禁。
    • 如果请求成功,解析返回的 JSON 数据并提取出状态信息、消息和附加信息;如果请求失败,则记录错误信息。
  2. curl_setopt 设置

    • CURLOPT_RETURNTRANSFER: 设置 cURL 返回响应数据,而不是直接输出。
    • CURLOPT_TIMEOUT: 设置请求超时为 10 秒。
    • CURLOPT_HEADER: 设置不显示响应头部信息。
  3. 返回结果处理

    • 如果请求成功且返回的是有效的 JSON 数据,则提取 statusmessageinfo 字段。
    • 如果响应无效或者发生错误,则记录错误类型及详细信息。
  4. 输出结果

    • 每个域名的状态信息会被输出,包括请求结果的状态(如是否封禁)、错误消息以及附加的详细信息。

示例输出

假设请求的 QQ 域名列表包含 qq.comqq.cnexample.com,执行脚本后可能得到如下输出:

Domain: qq.com
Status: success
Message: Domain is accessible
Info: [Additional details about the response]

Domain: qq.cn
Status: error
Message: Domain is blocked
Info: [Additional details about the response]

Domain: example.com
Status: error
Message: Invalid domain
Info: [Additional details about the response]

总结

这个 PHP 脚本示例展示了如何批量检查多个 QQ 域名的封禁状态。通过使用 cURL 扩展发送 HTTP 请求并解析 JSON 响应,您可以快速检查 QQ 域名的访问状态。这种方法适用于域名监控和批量检查,帮助管理员及时发现被封禁的域名并采取相应措施。


1 声望2 粉丝