Alan Adı Temelleri
Bir alan adının ad sunucularını, transfer kilidini, sahiplik bilgilerini ve geri alınmasını yöneten on uç.
Genel Bakış
Bu on uç bir alan adının temel işlerini yürütür: nereye baktığı, taşınıp taşınamayacağı, kime ait göründüğü ve süresi dolduğunda geri alınıp alınamayacağı.
Hepsi tescil kuruluşuna gerçek çağrı yapar. Bu yüzden yavaş olabilirler, kuruluşun kendi kurallarına takılabilirler ve bir modül bir işlemi hiç desteklemeyebilir. Her uç aynı dört ön koşulu paylaşır: hizmet var olmalı, alan adı olmalı, bir tescil modülü bağlı olmalı ve o modül işlemi desteklemeli.
Referans
Ad Sunucularını Ayarlama
Alan adının hangi ad sunucularına bakacağını yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/nameservers' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"ns1":"ns1.example.com","ns2":"ns2.example.com"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/nameservers', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
ns1: 'ns1.example.com',
ns2: 'ns2.example.com',
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/nameservers');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'ns1' => 'ns1.example.com',
'ns2' => 'ns2.example.com',
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Liste BUTUN yazilir: ns3 ve ns4 gondermezseniz varsa temizlenir.
$response = Api::Services()->SetDomainNameservers([
'id' => 520,
'ns1' => 'ns1.example.com',
'ns2' => 'ns2.example.com',
]);Transfer Kilidini Okuma
Alan adının başka bir tescil kuruluşuna taşınmaya karşı kilitli olup olmadığını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Okuma HAM deger dondurur, yazma 'enabled'/'disabled' dondurur: ikisi ayni sozlukten degil.
$response = Api::Services()->GetDomainTransferLock(['id' => 520]);Transfer Kilidini Değiştirme
Alan adının taşınmaya karşı kilidini açar ya da kapatır.
enable kilitler, disable kilidi açar.enable ya da disable değil.curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"enable"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ status: 'enable' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/transfer-lock');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['status' => 'enable']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kilit ACIKKEN alan adi tasinamaz: musteri baska kurulusa gececekse once kapatin.
Api::Services()->SetDomainTransferLock(['id' => 520, 'status' => 'disable']);
$code = Api::Services()->GetDomainAuthCode(['id' => 520]);Yetkilendirme Kodunu Alma
Alan adını başka bir tescil kuruluşuna taşımak için gereken kodu ister.
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/auth-code' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/auth-code', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
if (body.data.sent) {
// kod e-postayla gitti, yanitta yok
}$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/auth-code');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Iki farkli yanit sekli vardir; kodun geldigini VARSAYMAYIN.
$response = Api::Services()->GetDomainAuthCode(['id' => 520])['data'];
$code = $response['auth_code'] ?? null;
$mailed = $response['sent'] ?? false;{
"data": {
"auth_code": "EXAMPLE-AUTH-CODE"
}
}{
"data": {
"sent": true
}
}Alan Adını Geri Alma
Süresi dolmuş bir alan adını geri alır. Yalnız kurtarma penceresi açıkken çalışır.
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/restore' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/restore', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/restore');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Geri alma tescil kurulusuna UCRET oder; penceresi kapanmadan once cagirilir.
$response = Api::Services()->RestoreDomain(['id' => 520]);Transfer Durumunu Sorma
Süren bir alan adı transferinin nerede olduğunu tescil kuruluşuna sorar.
curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/check-transfer' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/check-transfer', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/check-transfer');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Hata durumu 200 icinde doner, HTTP hatasi olarak degil: durumu okumadan basarili saymayin.
$check = Api::Services()->CheckDomainTransfer(['id' => 520])['data'];
$stuck = $check['transfer_status'] === 'error';Tescil Durumunu Sorma
Tescil kuruluşunun kuyruğa aldığı bir tescilin tamamlanıp tamamlanmadığını sorar.
Bazı tescil kuruluşları yeni bir tescili kabul eder ve sonucu sonra bildirir. O zamana kadar hizmet inprocess kalır ve sayfasında "tescil devam ediyor" bandı görünür. domain.registration otomasyon görevi aynı kontrolü 15 dakikada bir, üç günden sonra günde bir yapar.
active, pending ya da failed. active olduğunda hizmet ve eklentileri etkinleşir, vade tarihi tescil kuruluşunun bitiş tarihinden alınır ve müşteriye bildirim gider. failed olduğunda bekleyen talep kapanır ve personele bildirim gider.active, beklerken inprocess.curl -X POST 'https://panel.ornek.com/api/v1/admin/services/520/domain/check-registration' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/check-registration', {
method: 'POST',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/check-registration');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Reddedilen tescil 200 icinde doner: yalnizca HTTP koduna degil registration_status alanina bakin.
$check = Api::Services()->CheckDomainRegistration(['id' => 520])['data'];
$refused = $check['registration_status'] === 'failed';WHOIS İletişimlerini Okuma
Alan adının tescil kuruluşundaki iletişim bilgilerini çeker.
curl 'https://panel.ornek.com/api/v1/admin/services/520/domain/whois' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/whois', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/whois');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Okuma tescil kurulusuna gider ve yerel kopyayi da tazeler: yavas olabilir.
$whois = Api::Services()->GetDomainWhois(['id' => 520])['data'];
$owner = $whois['registrant'];{
"data": {
"registrant": {
"first_name": "John",
"last_name": "Doe",
"company": "",
"email": "[email protected]",
"phone": "5550100",
"phone_cc": "+1",
"fax": "",
"fax_cc": "",
"address_line1": "123 Market Street",
"address_line2": "",
"city": "San Francisco",
"state": "California",
"zipcode": "94105",
"country": "US"
},
"administrative": { "first_name": "John", "last_name": "Doe", "email": "[email protected]" },
"technical": { "first_name": "John", "last_name": "Doe", "email": "[email protected]" },
"billing": { "first_name": "John", "last_name": "Doe", "email": "[email protected]" }
}
}WHOIS İletişimlerini Yazma
İletişim bilgilerini tescil kuruluşuna yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/whois' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"registrant":{"first_name":"John","last_name":"Doe","email":"[email protected]","phone":"5550100","phone_cc":"+1","address_line1":"123 Market Street","city":"San Francisco","state":"California","zipcode":"94105","country":"US"}}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/whois', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
registrant: {
first_name: 'John',
last_name: 'Doe',
email: '[email protected]',
phone: '5550100',
phone_cc: '+1',
address_line1: '123 Market Street',
city: 'San Francisco',
state: 'California',
zipcode: '94105',
country: 'US',
},
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/whois');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'registrant' => [
'first_name' => 'John',
'last_name' => 'Doe',
'email' => '[email protected]',
'address_line1' => '123 Market Street',
'city' => 'San Francisco',
'country' => 'US',
],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Once okuyup uzerine yazin: eksik gonderilen alanlar tescilde bosalabilir.
$whois = Api::Services()->GetDomainWhois(['id' => 520])['data'];
$whois['registrant']['email'] = '[email protected]';
Api::Services()->SetDomainWhois(['id' => 520] + $whois);Kayıt Gizliliğini Değiştirme
İletişim bilgilerinin genel sorgularda gizlenmesini açar ya da kapatır.
enable gizler, disable gizlemeyi kaldırır.enabled ya da disabled.enable ya da disable değil.curl -X PUT 'https://panel.ornek.com/api/v1/admin/services/520/domain/whois-privacy' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"status":"enable"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/520/domain/whois-privacy', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ status: 'enable' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/520/domain/whois-privacy');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['status' => 'enable']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Gizlilik cogu uzantida UCRETLI bir eklentidir: acmak fatura dogurabilir.
$response = Api::Services()->SetDomainWhoisPrivacy([
'id' => 520,
'status' => 'enable',
]);Tuzaklar
Bazı tescil kuruluşları kodu doğrudan verir, bazıları tescil sahibinin adresine e-postayla gönderir. İkinci durumda yanıtta yalnız gönderildiği bilgisi bulunur, kodun kendisi yoktur. Kodun geldiğini varsayan bir istemci burada boş değer okur.
Gönderdiğiniz set yeni gerçektir: üçüncü ve dördüncü sunucuyu göndermezseniz varsa temizlenirler. Yalnız birincil sunucuyu değiştirmek istiyorsanız bile diğerlerini birlikte göndermeniz gerekir.
WHOIS yazma ucu iletişim bilgisi güncellemekten fazlasıdır: tescil sahibi alanı alan adının hukuken kime ait olduğunu belirler. Çoğu uzantıda bu değişiklik bir onay süreci başlatır ve alan adını bir süre transfere kapatır. Ayrıca eksik gönderilen alanlar tescilde boşalabilir; önce okuyup üzerine yazın.
Süresi dolan bir alan adı önce geri alınabilir bir dönemden geçer, sonra serbest bırakılır. Pencere kapandıktan sonra bu uç not_in_window döndürür ve yapılacak bir şey kalmaz. Geri alma ayrıca tescil kuruluşuna genelde yüksek bir ücret ödetir.
Hizmet bir transfer değilse ya da transfer takılmışsa bunu HTTP hatası olarak değil, yanıttaki durum alanında öğrenirsiniz. Yalnız durum koduna bakan bir istemci başarısız transferi başarılı sayar.
Tescil sorgusu registration_sync() sunan bir modül ister; diğerleri not_supported döner. Bu modüllerde ad tescil kuruluşunda kayıtlı olunca hizmeti kendiniz etkinleştirin. Ret sonrasında hizmeti etkinleştirmek yeni bir tescil gönderir.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.