增加判断代码如下:

$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;
    }
}

代码功能:

  1. 从变量 $j46 中获取域名列表。
  2. 遍历域名列表,分别检查每个域名是否可以在QQ和微信内访问。
  3. 如果找到可以在QQ和微信内访问的域名,则将该域名保存到 $available_domain 中,并退出循环。
  4. 如果没有找到可用的域名,则提示“无可用域名”。
  5. 如果找到了可用的域名,则根据 $j47 的值判断是否需要跳转到该域名。
  6. 如果需要跳转,则使用 setcookie() 设置 cookie,并使用 header() 函数进行跳转。
  7. checkDomainStatus() 函数用于检查指定域名是否可以访问,通过判断 Location 头部的域名是否与目标域名一致来判断。

代码说明:

  • $j46 存储域名列表,以逗号分隔。
  • $j47 控制是否进行域名跳转。
  • $available_domain 存储找到的可用域名。
  • $url_qq$url_wechat 分别是QQ和微信的API地址。
  • checkDomainStatus() 函数使用 get_headers() 获取网页的响应头,并判断 Location 头部是否包含目标域名。

使用方法:

  1. 将代码复制到您的PHP文件中。
  2. 确保 $j46$j47 变量的值已正确设置。
  3. 运行代码,程序会根据判断结果进行相应的操作。
PHP代码:判断域名是否可以在QQ和微信内访问

原文地址: https://www.cveoy.top/t/topic/nPV4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录