这段PHP代码用于检测指定域名列表中的域名是否被封。代码首先定义了一个包含待检测域名的数组 `$domainList`,然后遍历该数组,对每个域名发送HTTP请求并检查响应内容以判断域名是否被封。
具体步骤如下:
1. 定义待检测的域名列表。
2. 遍历域名列表,构建带有域名参数的URL。
3. 使用cURL库发送HTTP请求,并设置相关参数,如设置超时时间、禁止SSL验证等。
4. 获取HTTP响应内容和HTTP状态码。
5. 根据响应内容判断域名是否被封,如果响应内容中包含"域名被封"则表示域名被封,否则为正常。
需要注意的是,该代码中存在一些问题:
- URL中的域名参数没有进行URL编码,可能导致某些特殊字符引起错误。
- 代码中未对HTTP请求返回的状态码进行详细处理,仅简单判断是否包含特定字符串。
- 用户代理信息固定,不够随机化,可能导致检测被识别为爬虫行为。
- 禁止SSL验证可能存在安全风险,建议进行合适的SSL证书验证。
- 输出结果使用了 `<br>` 标签,建议在命令行环境或者其他适合的环境测试。
<?php
// 填入待检测的域名列表
$domainList = array(
'https://hs.jiaaisiwl.cn/ ',
'google.com',
'baidu.com',
);
// 遍历域名列表进行检测
foreach ($domainList as $domain) {
$url = "https://down.ychengsnsm.com/wx/?url={$domain}";
// 发送 HTTP 请求
$curl = curl_init();
curl_setopt_array($curl, array(
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($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
// 解析响应结果
if (strpos($response, '域名被封') === false) {
// 检测域名正常
echo "域名 {$domain} 正常\n";
echo "</br>";
} else {
// 检测域名被封
echo "域名 {$domain} 被封\n";
echo "</br>";
}
}
?>