PHP使用cloudflare API 让域名定时自动更换IP脚本

PHP
技之树 2021-8-12

3121 0

代码详情

<?php

  //前面那个可能有问题,现在改进一下
  //注意 : CF不能开启CDN
  //机器IP越多越好
//随便找台其他机器(不要和被打网站一台),宝塔定时1分钟URL访问 http://127.0.0.1/q.php 一次

$file = './tqdata.txt';
$txt = file_get_contents($file);
if ($txt == 254) {   
    $txt = 1;
} else {
    $txt += 1;
}
$myfile = fopen($file, "w");
fwrite($myfile, $txt);
fclose($myfile);

$ips = [];
for($i=1; $i <=254; $i++){
    $ips[$i] =  '123.123.123.' . $i;
}

$ip = $ips[$txt];

$www='https://api.cloudflare.com/client/v4/zones/XXXXXXXXXXXX/dns_records/XXXXXXXXXXXXX';

$datawww = array(
    "type"=>"A",
    "name"=>"www.xxxx.com",
    "content"=>$ip,
    "ttl"=>120,
    "proxied"=>false
);

curl_get($www,$datawww);

function curl_get($url,$data)
{
$ch = curl_init();
$headers = array(
    'X-Auth-Email:xxxxx@gmail.com',
    'X-Auth-Key:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'Content-Type:application/json'
);
$data = json_encode($data);
$ch = curl_init(); //初始化CURL句柄
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"PUT"); //设置请求方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output,true);
}

素材来源:PHP cloudflare API 自动更换IP

最后于 2021-9-3 被技之树编辑 ,原因:
这家伙太懒了,什么也没留下。
最新回复 (0)
    • YiOVE论坛
      2
         
返回