首页 > 解决方案 > Cloudflare API - 使用 CURL PHP 创建 DNS (NS) 记录

问题描述

我正在使用 curl (PHP) 向我的区域添加记录;我想将 test.gen.ng 添加为带有名称服务器(ns1.test.com、ns2.test.com、ns3.test.com、ns4.test.com)的 DNS 记录。我可以使用底部的代码添加 A 记录、CNAME 记录和其他记录,但不能添加 NS 记录。

{"success":false,"errors":[{"code":1004,"message":"DNS 验证错误","error_chain":[{"code":9102,"message":"内容必须是string."}]}],"messages":[],"result":null}

我遇到了如上所示的错误;发送以下内容。

<?php
/* Cloudflare.com | APİv4 | Api Ayarları */
$apikey = '61543253246426e7147'; // Cloudflare Global API
$email = 'rose@gen.ng'; // Cloudflare Email Adress
$domain = 'gen.ng';  // zone_name // Cloudflare Domain Name
$zoneid = 'a30b057777777777777777dadd'; // zone_id // Cloudflare Domain Zone ID
$dnsadgeldi = 'test';
$dnsnameserver1 = 'ns1.test.com';
$dnsnameserver2 = 'ns2.test.com';
$dnsnameserver3 = 'ns3.test.com';
$dnsnameserver4 = 'ns4.test.com';
$ttl = 120;


// A-record oluşturur DNS sistemi için.
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/".$zoneid."/dns_records");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-Auth-Email: '.$email.'',
        'X-Auth-Key: '.$apikey.'',
        'Cache-Control: no-cache',
        // 'Content-Type: multipart/form-data; charset=utf-8',
        'Content-Type:application/json',
        'purge_everything: true'

        ));

        // -d curl parametresi.
        $data = array(

            'type' => 'NS',
            'name' => ''.$dnsadgeldi.'',

            'content' => Array
            (
                    '0' => $dnsnameserver1,
                    '1' => $dnsnameserver2,
                    '2' => $dnsnameserver3,
                    '3' => $dnsnameserver4

            ),

            'zone_name' => ''.$domain.'',
            'zone_id' => ''.$zoneid.'',
            'proxiable' => 'false',
            'proxied' => false,
            'ttl' => 1
        );

        $data_string = json_encode($data);

        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
        //curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data_string));

        $sonuc = curl_exec($ch);

             // If you want show output remove code slash.
     // print_r($sonuc);

        curl_close($ch);

        echo $sonuc;

标签: phpcurlcloudflare

解决方案


推荐阅读