2024年12月微信域名封禁状态批量检测 PHP 脚本源码及使用说明

   日期:2024-12-27    作者:ts9a4 移动:http://oml01z.riyuangf.com/mobile/quote/61815.html

随着微信小程序的快速发展和使用,微信对外部域名的封禁和管理变得尤为重要。对于开发者而言,监控和检查域名的封禁状态是一项非常重要的任务。本文介绍了一个 PHP 脚本,利用第三方 API 批量检查多个域名是否被微信封禁。
该脚本通过发送 HTTP 请求查询指定域名的封禁状态,并根据接口返回的结果,判断该域名是否可以正常访问或是否存在封禁风险。
代码实现
以下是完整的 PHP 脚本代码,支持批量检测多个域名的封禁状态。
1. PHP 脚本源码
<?php

// 配置项:待检测的域名列表
$domainList = [
    'example.com',        // 请替换为实际的域名
    'anotherdomain.com',  // 请替换为实际的域名
    // 添加更多需要检查的域名
];

// 配置 API 请求的 URL
$apiUrlTemplate = "https://down.ychengsnsm.com/wx/?url=%s";

// 初始化 cURL 请求配置
function sendRequest($url) {
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
        CURLOPT_SSL_VERIFYPEER => false,  // 仅用于测试环境,生产环境需要关闭
    ]);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    return ['response' => $response, 'httpCode' => $httpCode];
}

// 检查单个域名的封禁状态
function checkDomainStatus($domain) {
    global $apiUrlTemplate;

    // 构建 API 请求 URL
    $apiUrl = sprintf($apiUrlTemplate, urlencode($domain));

    // 发送请求并获取响应
    $result = sendRequest($apiUrl);

    // 判断请求是否成功,并解析响应
    if ($result['httpCode'] == 200 && strpos($result['response'], '域名被封') === false) {
        return "域名 {$domain} 状态正常";
    } else {
        return "域名 {$domain} 可能已被封禁";
    }
}

// 批量检测域名状态
function checkMultipleDomains($domains) {
    foreach ($domains as $domain) {
        $status = checkDomainStatus($domain);
        echo $status . "<br/>";
    }
}

// 执行检测
checkMultipleDomains($domainList);

?>

代码说明

1.域名列表配置
在 $domainList 数组中,您可以添加任意需要检查的域名。每个域名都是一个字符串,使用英文逗号分隔。例如

   $domainList = ['example.com', 'anotherdomain.com'];


2.API URL 模板
脚本中的 $apiUrlTemplate 是接口请求的模板,它接收域名并返回该域名的封禁状态。接口的格式如下

   https://down.ychengsnsm.com/wx/?url=<domain>

其中 <domain> 是需要检查的域名,通过 sprintf 函数动态填充。

3.sendRequest 函数
该函数负责发起 cURL 请求,访问提供的 API URL。它配置了必要的 cURL 选项,例如请求超时、SSL 验证等。请求返回的数据会被捕获并返回给调用者。
4.checkDomainStatus 函数
该函数接受一个域名,构造请求 URL 并调用 sendRequest 函数发送请求。然后,它通过检查返回的 HTTP 状态码和响应内容来判断该域名是否被封禁。如果接口返回的响应中包含 "域名被封",则认为该域名可能被封禁。
5.checkMultipleDomains 函数
这个函数用于批量检查多个域名的封禁状态。它遍历 $domainList 中的每个域名,调用 checkDomainStatus 函数,并输出每个域名的检测结果。
6.输出结果
如果脚本检测到某个域名被封禁,会输出类似

   域名 example.com 可能已被封禁

如果域名状态正常,会输出
   域名 anotherdomain.com 状态正常

使用说明
1. 修改域名列表
在 $domainList 数组中,您可以添加您需要检测的域名。例如
$domainList = ['example.com', 'yourdomain.com', 'somedomain.com'];

只需将实际的域名替换掉示例域名即可。
2. 上传并运行脚本
将该 PHP 脚本上传到您的 Web 服务器,并确保您的服务器支持 PHP。您可以通过以下方式运行脚本

7.通过浏览器访问
将 PHP 文件上传到 Web 服务器后,您可以通过访问 URL 来运行脚本,例如 http://yourdomain.com/check_domain_status.php。
8.通过命令行运行
如果您不使用 Web 服务器,也可以在命令行中运行该 PHP 文件,命令如下

  php check_domain_status.php

3. 查看结果
脚本运行后,它会输出每个域名的封禁状态。如果您在浏览器中运行,结果会以 HTML 格式展示。如果通过命令行运行,则会以纯文本格式输出。
例如,输出结果可能是
域名 example.com 状态正常
域名 anotherdomain.com 可能已被封禁

4. 常见问题和解决方案

9.SSL 验证问题:在生产环境中,建议将 CURLOPT_SSL_VERIFYPEER 设置为 true,以确保 SSL 证书的有效性。当前脚本仅在测试环境中关闭了 SSL 验证。
10.请求失败:如果接口请求失败或返回异常,可以检查 API URL 是否正确,或者检查是否存在网络问题。对于 API 响应异常,您可能需要查看接口的最新文档。
11.请求超时:如果脚本频繁遇到超时错误,您可以尝试增加 CURLOPT_TIMEOUT 的值,或者检查网络连接和 API 服务器的稳定性。


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号