PHP代码:判断域名是否可以在QQ和微信内访问
增加判断代码如下:
$j46 = $conf['j46'];
$j47 = $conf['j47'];
if ($j47 == 1) {
$domains = explode(',', '$j46');
$available_domain = ''; // 可用域名
foreach ($domains as $domain) {
$url_qq = 'https://graph.qq.com';
$url_wechat = 'https://open.weixin.qq.com';
$qq_status = checkDomainStatus($url_qq, $domain);
$wechat_status = checkDomainStatus($url_wechat, $domain);
if ($qq_status && $wechat_status) {
$available_domain = $domain;
break;
}
}
if ($available_domain == '') {
echo '无可用域名';
exit();
}
if (!isset($_COOKIE['redirected'])) {
setcookie('redirected', 'true', time() + 10);
$current_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$new_url = 'http://' . $available_domain . $_SERVER['REQUEST_URI'];
header('Refresh: 2; URL=' . $new_url);
echo '嘿嘿';
exit();
} else {
// 已经跳转过,不再跳转
}
}
function checkDomainStatus($url, $domain) {
$headers = @get_headers($url, 1);
if ($headers && isset($headers['Location'])) {
if (is_array($headers['Location'])) {
$location = $headers['Location'][0];
} else {
$location = $headers['Location'];
}
$parsed_url = parse_url($location);
if (isset($parsed_url['host']) && $parsed_url['host'] == $domain) {
return true;
} else {
return false;
}
} else {
return false;
}
}
代码功能:
- 从变量
$j46中获取域名列表。 - 遍历域名列表,分别检查每个域名是否可以在QQ和微信内访问。
- 如果找到可以在QQ和微信内访问的域名,则将该域名保存到
$available_domain中,并退出循环。 - 如果没有找到可用的域名,则提示“无可用域名”。
- 如果找到了可用的域名,则根据
$j47的值判断是否需要跳转到该域名。 - 如果需要跳转,则使用
setcookie()设置 cookie,并使用header()函数进行跳转。 checkDomainStatus()函数用于检查指定域名是否可以访问,通过判断Location头部的域名是否与目标域名一致来判断。
代码说明:
$j46存储域名列表,以逗号分隔。$j47控制是否进行域名跳转。$available_domain存储找到的可用域名。$url_qq和$url_wechat分别是QQ和微信的API地址。checkDomainStatus()函数使用get_headers()获取网页的响应头,并判断Location头部是否包含目标域名。
使用方法:
- 将代码复制到您的PHP文件中。
- 确保
$j46和$j47变量的值已正确设置。 - 运行代码,程序会根据判断结果进行相应的操作。
原文地址: https://www.cveoy.top/t/topic/nPV4 著作权归作者所有。请勿转载和采集!