使用 PHP 脚本自动切换 Cloudflare DNS 记录以应对网站宕机

本脚本利用 Cloudflare API 检测指定域名的 IP 地址是否与 Cloudflare DNS 记录中的 IP 地址相同,如果不同,则使用当前 IP 地址更新 DNS 记录,实现网站宕机时自动切换 IP 的功能。

代码示例:

<?php

$domain = 'example.com'; // 替换为需要检测的域名
$api_key = 'your_api_key'; // 替换为您的 Cloudflare API Key
$email = 'your_email_address'; // 替换为您的 Cloudflare 账户邮箱
$zone_id = 'your_zone_id'; // 替换为您的 Cloudflare Zone ID

// 获取域名的当前 IP 地址
$current_ip = gethostbyname($domain);

// 创建 Cloudflare API 请求
$request = curl_init();
curl_setopt($request, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/{$zone_id}/dns_records?type=A&name={$domain}");
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_HTTPHEADER, array(
    "X-Auth-Email: {$email}",
    "X-Auth-Key: {$api_key}",
    "Content-Type: application/json"
));
$response = json_decode(curl_exec($request), true);
curl_close($request);

// 获取 Cloudflare DNS 记录中的 IP 地址
$cloudflare_ip = $response["result"][0]["content"];

// 如果当前 IP 地址与 Cloudflare DNS 记录中的 IP 地址不同,则更新 DNS 记录
if ($current_ip != $cloudflare_ip) {
    $request = curl_init();
    curl_setopt($request, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/{$zone_id}/dns_records/{$response["result"][0]["id"]}");
    curl_setopt($request, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($request, CURLOPT_POSTFIELDS, json_encode(array(
        "type" => "A",
        "name" => $domain,
        "content" => $current_ip,
        "ttl" => 1,
        "proxied" => false
    )));
    curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($request, CURLOPT_HTTPHEADER, array(
        "X-Auth-Email: {$email}",
        "X-Auth-Key: {$api_key}",
        "Content-Type: application/json"
    ));
    curl_exec($request);
    curl_close($request);
}

?>

使用说明:

  1. 替换代码中的 $domain$api_key$email$zone_id 为您的实际信息。
  2. 将代码保存为 .php 文件,并放置在您的服务器上。
  3. 设置定时任务定期执行该脚本,例如每 5 分钟执行一次。

注意:

  • 此代码仅适用于 A 记录类型的 DNS 记录。
  • 在执行脚本之前,请确保您已在 Cloudflare 中启用 API 功能。
  • 使用此脚本时,建议您设置一个单独的 Cloudflare 账户,避免影响您的主账户。

通过使用此脚本,您可以轻松实现网站宕机时自动切换 IP 的功能,提高网站的可用性和可靠性。

PHP 自动切换 Cloudflare DNS 记录以应对网站宕机

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

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