PHP ile bir hosting hesabına DNS zone kaydı eklemek için genellikle sunucu sağlayıcısının API’sini kullanarak gerçekleştirilir. DNS zone kayıtlarını doğrudan PHP kodu ile eklemek için aşağıdaki adımları izleyebilirsiniz:
- Sunucu Sağlayıcısının API’sini Kullanma:
Çoğu hosting sağlayıcısı, DNS yönetimi için bir API sunar. Örneğin, cPanel, Plesk, Cloudflare gibi hizmetlerin API’lerini kullanarak DNS kayıtlarını yönetebilirsiniz. - API Kimlik Doğrulaması:
Sunucu sağlayıcısının API’sine erişmek için kimlik doğrulama bilgilerini (API anahtarı, kullanıcı adı, şifre vb.) edinmeniz gerekecektir. - API Çağrıları Yapma:
PHP ile API’ye HTTP istekleri yapabilirsiniz. Bunun için cURL veya Guzzle gibi kütüphaneleri kullanabilirsiniz.
Örnek olarak, cPanel API’si kullanarak DNS zone kaydı eklemeyi göstereyim:
Adım 1: cPanel API Anahtarını Alma
cPanel hesabınıza giriş yapın ve “API Tokens” bölümünden yeni bir API anahtarı oluşturun.

Oluştura tıkladıktan sonra aşağıdaki ekran bizi karşılıyor ve burada API token oluşuyor bunu kopyalıyoruz ve kaybetmiyoruz tekrar erişim sağlanamıyor. her serinde yeni oluşturmamız gerekiyor.
Tokenı kopyalıyoruz ve kod yazmaya geçiyoruz.
<?php
$cpanel_user = "cpanel_kullanici_adiniz";
$cpanel_api_token = "cpanel_api_anahtariniz";
$domain = "ornekdomain.com";
$subdomain = "subdomain";
$ip_address = "1.2.3.4";
// cPanel API URL
$url = "https://{$domain}:2083/json-api/cpanel";
// API Parametreleri
$params = [
'cpanel_jsonapi_user' => $cpanel_user,
'cpanel_jsonapi_apiversion' => '2',
'cpanel_jsonapi_module' => 'ZoneEdit',
'cpanel_jsonapi_func' => 'add_zone_record',
'domain' => $domain,
'name' => "{$subdomain}.{$domain}.",
'type' => 'A',
'address' => $ip_address,
];
// cURL isteği
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: cpanel ' . $cpanel_user . ':' . $cpanel_api_token,
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Hata: ' . curl_error($ch);
} else {
echo 'Başarılı: ' . $response;
}
curl_close($ch);
?>
yazmamız gerekon kodumuz bukadardı.



