Alan Adı Kişileri ve Gizlilik

1.6k görüntülenme Markdown

Alan adının kim adına kayıtlı olduğunu ve kimin göreceğini yöneten dokuz uç.

Genel Bakış

Her alan adı dört rolde kişi bilgisi taşır: kayıt sahibi, yönetim, teknik ve fatura. Bunlar sicilde durur ve çoğu uzantıda herkese açık bir sorguyla görülebilir.

Aynı bilgiyi her alan adına elle yazmamak için hesap düzeyinde kişi profilleri tutulur. Bir profil dört role birden uygulanır ve varsayılan olan yeni kayıtlarda kendiliğinden kullanılır.

Gizlilik ayarı bu bilgilerin herkese açık sorguda görünmesini engeller. Bazı uzantılarda ücretsizdir, bazılarında ek hizmet ister.

Referans

Alan Adı Kişilerini Okuma

get/api/v1/client/domains/{domain}/whois
Domains/GetWhoisContacts sağlayıcıdan okur

Alan adının dört rolündeki kişi bilgilerini döndürür.

Dönen alanlar data — 4
registrantobjectKayıt sahibi. Alan adının hukuki sahibidir.
first_namestringAdı.
last_namestringSoyadı.
namestringGörünen tam ad. Kayıtlı ad yoksa ad ve soyaddan kurulur.
companystringKurum adı.
emailstringE-posta.
phonestringTelefon.
addressstringAdres.
citystringŞehir.
statestringİl.
zipstringPosta kodu.
countrystringÜlke kodu.
administrativeobjectYönetim kişisi. Aynı alanları taşır.
technicalobjectTeknik kişi.
billingobjectFatura kişisi.
Hatalar 4
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
whois_not_supported422Sağlayıcı modülü kurulamadı.
whois_rejected422Bir kanca okumayı reddetti.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/example.com/whois' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/whois`, {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
renderContact(data.registrant);
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/whois');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Dort rol HER ZAMAN doner; sagalyici tek kisi tutuyorsa dordu de ayni bilgiyi tasir.
$w = Kernel::internal('client:Domains/GetWhoisContacts',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

$same = $w['registrant']['email'] === $w['technical']['email'];

Alan Adı Kişilerini Yazma

put/api/v1/client/domains/{domain}/whois
Domains/UpdateWhoisContacts sicile yazar

Bir kişiyi seçilen role ya da dört role birden yazar.

Gövde 2
rolestringHangi rollere yazılacağı. Verilmezse dört rolün hepsine yazılır.
contactobjectreqYazılacak kişi.
first_namestringreqKişinin adı.
last_namestringreqKişinin soyadı.
companystringKurum adı. Tek isteğe bağlı alandır.
emailstringreqGeçerli bir e-posta.
phonestringreqTelefon.
addressstringreqAdres satırı.
citystringreqŞehir.
statestringİl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir.
zipstringreqPosta kodu.
countrystringreqÜlke kodu. Büyük harfe çevrilir.
Dönen alanlar data — 4
dataobjectGüncel dört rol. Okuma ucuyla aynı şekildedir.
Hatalar 9
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
role_invalid422Rol beş değerden biri değil.
contact_name_required422Ad ya da soyad boş.
contact_email_invalid422E-posta boş ya da geçersiz.
contact_field_required422Başka bir zorunlu alan boş. Hangisi olduğu yanıtın ayrıntısında, sağlayıcının kendi anahtar biçimiyle gelir.
whois_not_supported422Sağlayıcı modülünde kişi yazma yok.
whois_rejected422Bir kanca değişikliği reddetti.
whois_failed422Sağlayıcı değişikliği reddetti.
whois_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/client/domains/example.com/whois' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"role":"technical","contact":{"first_name":"Jane","last_name":"Cooper","email":"[email protected]","phone":"+15551112233","address":"Sample St 42","city":"Austin","state":"TX","zip":"73301","country":"US"}}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/whois`, {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ role: 'technical', contact }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/whois');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['role' => 'technical', 'contact' => $contact]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// KAYIT SAHIBINI degistirmek bazi uzantilarda sahiplik devri sayilir ve alan adini kilitler.
// Yalniz bir rolu degistirecekseniz rolu acikca yazin; varsayilan DORT ROLE birden yazar.
Kernel::internal('client:Domains/UpdateWhoisContacts', ['owner_id' => $uid, 'domain' => $domain,
    'role' => 'technical', 'contact' => $contact]);

Kayıtlı Profili Uygulama

post/api/v1/client/domains/{domain}/whois/apply
Domains/ApplyWhoisProfile dört rolü doldurur

Kayıtlı bir kişi profilini alan adının dört rolüne birden yazar.

Gövde 1
profile_idintreqUygulanacak profilin numarası.
Dönen alanlar data — 4
dataobjectGüncel dört rol.
Hatalar 6
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_found404Profil bulunamadı ya da başka bir hesaba ait.
not_actionable422Alan adı etkin değil.
whois_not_supported422Sağlayıcı modülünde kişi yazma yok.
whois_rejected422Bir kanca değişikliği reddetti.
whois_failed422Sağlayıcı değişikliği reddetti.
whois_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/client/domains/example.com/whois/apply' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"profile_id":7}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/whois/apply`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ profile_id: profileId }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/whois/apply');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['profile_id' => $pid]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Bu uc DORT ROLU birden ezer: yalniz teknik kisiyi degistirecekseniz yazma ucunu rolle kullanin.
Kernel::internal('client:Domains/ApplyWhoisProfile',
    ['owner_id' => $uid, 'domain' => $domain, 'profile_id' => $pid]);

Kayıt Gizliliğini Değiştirme

put/api/v1/client/domains/{domain}/whois-privacy
Domains/UpdateWhoisPrivacy ücretli olabilir

Kişi bilgilerinin herkese açık sorguda gizlenmesini açar ya da kapatır.

Gövde 1
enabledboolreqGizlilik açık mı. Gerçek bir mantıksal değer olmalıdır.
Dönen alanlar data — 1
whois_privacyboolSağlayıcının onayladığı yeni durum.
Hatalar 7
not_found404Alan adı bulunamadı, size ait değil ya da erişimi kısıtlanmış.
not_actionable422Alan adı etkin değil.
enabled_invalid422Değer mantıksal değil.
privacy_not_supported422Sağlayıcı modülünde gizlilik desteği yok.
addon_required422Gizlilik bu uzantıda ücretlidir ve ek hizmet alınmamış.
privacy_rejected422Bir kanca değişikliği reddetti.
privacy_failed422Sağlayıcı değişikliği reddetti.
privacy_failed500Sağlayıcıya ulaşılamadı, yanıt gelmedi ya da işlem gerekçe bildirilmeden düştü. Daha sonra yeniden deneyin.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/client/domains/example.com/whois-privacy' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"enabled":true}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/${domain}/whois-privacy`, {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ enabled: true }),
});

if (res.status === 422) offerAddon(await res.json());
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/' . $domain . '/whois-privacy');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['enabled' => true]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Gizlilik bazi uzantilarda UCRETSIZ, bazilarinda EK HIZMET: reddi okuyup satin almaya yonlendirin.
$d = Kernel::internal('client:Domains/GetDomain',
    ['owner_id' => $uid, 'domain' => $domain])['data'];

$state = $d['addons']['whois_privacy']['state'];

Kayıtlı Profilleri Listeleme

get/api/v1/client/domains/whois-profiles
Domains/GetWhoisProfiles hesap geneli

Hesabın kayıtlı kişi profillerini döndürür.

Dönen alanlar data[] — 4
idintProfilin numarası.
namestringProfilin etiketi.
is_defaultboolHesabın varsayılanı mı. En çok bir profil bunu taşır.
contactobjectKayıtlı kişi. Alan adı kişisiyle aynı alanlar; türetilmiş tam ad burada yoktur ve il boş olabilir.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/client/domains/whois-profiles' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/client/domains/whois-profiles', {
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
const fallback = data.find((p) => p.is_default);
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/whois-profiles');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Varsayilan profil YENI kayitlarda kendiliginden uygulanir; var olan alan adlarina dokunmaz.
$rows = Kernel::internal('client:Domains/GetWhoisProfiles', ['owner_id' => $uid])['data'];
$def = array_values(array_filter($rows, fn ($p) => $p['is_default']))[0] ?? null;

Profil Oluşturma

post/api/v1/client/domains/whois-profiles
Domains/CreateWhoisProfile hesap geneli

Yeniden kullanılabilir bir kişi profili kaydeder.

Gövde 2
namestringreqProfilin etiketi.
contactobjectreqKaydedilecek kişi. İl burada zorunlu değildir.
first_namestringreqKişinin adı.
last_namestringreqKişinin soyadı.
companystringKurum adı. Tek isteğe bağlı alandır.
emailstringreqGeçerli bir e-posta.
phonestringreqTelefon.
addressstringreqAdres satırı.
citystringreqŞehir.
statestringİl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir.
zipstringreqPosta kodu.
countrystringreqÜlke kodu. Büyük harfe çevrilir.
Dönen alanlar data[] — 4
dataobject[]Güncel profil listesi. Listeleme ucuyla aynı şekli döndürür.
Hatalar 6
name_required422Etiket boş.
contact_name_required422Ad ya da soyad boş.
contact_email_invalid422E-posta boş ya da geçersiz.
contact_field_required422Başka bir zorunlu alan boş. İl burada zorunlu değildir.
profile_rejected422Bir kanca kaydı reddetti.
profile_failed500Profil kaydı oluşturulamadı.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/client/domains/whois-profiles' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"name":"Company","contact":{"first_name":"Jane","last_name":"Cooper","email":"[email protected]","phone":"+15551112233","address":"Sample St 42","city":"Austin","zip":"73301","country":"US"}}'
const res = await fetch('https://panel.ornek.com/api/v1/client/domains/whois-profiles', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name, contact }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/whois-profiles');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(compact('name', 'contact')),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// IL alani profilde zorunlu DEGIL ama alan adina uygularken zorunlu OLABILIR; doldurmak guvenlidir.
Kernel::internal('client:Domains/CreateWhoisProfile',
    ['owner_id' => $uid, 'name' => $name, 'contact' => $contact]);

Profili Güncelleme

put/api/v1/client/domains/whois-profiles/{pid}
Domains/UpdateWhoisProfile tam kişi

Kayıtlı bir profili yeniden yazar.

Gövde 2
namestringreqYeni etiket.
contactobjectreqTam kişi. Kayıtlı kişi bütünüyle değiştirilir.
first_namestringreqKişinin adı.
last_namestringreqKişinin soyadı.
companystringKurum adı. Tek isteğe bağlı alandır.
emailstringreqGeçerli bir e-posta.
phonestringreqTelefon.
addressstringreqAdres satırı.
citystringreqŞehir.
statestringİl ya da eyalet. Alan adı kişilerinde zorunludur, kayıtlı profillerde değildir.
zipstringreqPosta kodu.
countrystringreqÜlke kodu. Büyük harfe çevrilir.
Dönen alanlar data[] — 4
dataobject[]Güncel profil listesi. Listeleme ucuyla aynı şekli döndürür.
Hatalar 6
not_found404Böyle bir profil yok ya da başka bir hesaba ait.
name_required422Etiket boş.
contact_name_required422Ad ya da soyad boş.
contact_email_invalid422E-posta boş ya da geçersiz.
contact_field_required422Başka bir zorunlu alan boş.
profile_rejected422Bir kanca kaydı reddetti.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/client/domains/whois-profiles/7' \
  -H "Authorization: Bearer $CLIENT_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"name":"Company","contact":{"first_name":"Jane","last_name":"Cooper","email":"[email protected]","phone":"+15551112233","address":"New St 7","city":"Austin","zip":"73301","country":"US"}}'
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/whois-profiles/${pid}`, {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${clientKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ name, contact }),
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/whois-profiles/' . $pid);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $clientKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(compact('name', 'contact')),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Profili guncellemek onu KULLANAN alan adlarina YANSIMAZ: her birine yeniden uygulamaniz gerekir.
Kernel::internal('client:Domains/UpdateWhoisProfile',
    ['owner_id' => $uid, 'pid' => $pid, 'name' => $name, 'contact' => $contact]);

foreach ($domains as $d)
    Kernel::internal('client:Domains/ApplyWhoisProfile',
        ['owner_id' => $uid, 'domain' => $d, 'profile_id' => $pid]);

Profili Silme

delete/api/v1/client/domains/whois-profiles/{pid}
Domains/DeleteWhoisProfile hesap geneli

Kayıtlı bir kişi profilini siler.

Dönen alanlar data[] — 4
dataobject[]Güncel profil listesi. Varsayılan silinince en üstte kalan profil terfi eder.
Hatalar 2
not_found404Böyle bir profil yok ya da başka bir hesaba ait.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X DELETE 'https://panel.ornek.com/api/v1/client/domains/whois-profiles/7' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/whois-profiles/${pid}`, {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${clientKey}` },
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/whois-profiles/' . $pid);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'DELETE',
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Profili silmek onu kullanan alan adlarinin kisilerini DEGISTIRMEZ: sicildeki bilgi yerinde kalir.
Kernel::internal('client:Domains/DeleteWhoisProfile', ['owner_id' => $uid, 'pid' => $pid]);

Profili Varsayılan Yapma

post/api/v1/client/domains/whois-profiles/{pid}/default
Domains/SetDefaultWhoisProfile hesap geneli

Yeni kayıtlarda kendiliğinden uygulanacak profili belirler.

Gövde —
——Gövde gerekmez; boş gönderin. Profil adresten gelir; sorgu parametresi de almaz.
Dönen alanlar data[] — 4
dataobject[]Güncel profil listesi, varsayılan en başta. Listeleme ucuyla aynı şekli döndürür.
Hatalar 2
not_found404Böyle bir profil yok ya da başka bir hesaba ait.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/client/domains/whois-profiles/7/default' \
  -H "Authorization: Bearer $CLIENT_KEY"
const res = await fetch(`https://panel.ornek.com/api/v1/client/domains/whois-profiles/${pid}/default`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${clientKey}` },
});

const { data } = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/client/domains/whois-profiles/' . $pid . '/default');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $clientKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Varsayilan YALNIZ yeni kayit ve transferlerde kullanilir; elinizdeki alan adlarina uygulanmaz.
Kernel::internal('client:Domains/SetDefaultWhoisProfile', ['owner_id' => $uid, 'pid' => $pid]);

Tuzaklar

Rol verilmezse dört rol birden yazılır

Kişi yazma ucunda rol alanı isteğe bağlıdır ve verilmediğinde kişi dört role birden yazılır. Yalnız teknik ilgiliyi değiştirmek isterken rolü yazmayı unutmak, kayıt sahibini de değiştirir. Profil uygulama ucu ise her zaman dördünü birden yazar.

Kayıt sahibini değiştirmek devir sayılabilir

Kayıt sahibi alan adının hukuki sahibidir. Bazı uzantılarda bu bilgiyi değiştirmek sahiplik devri sayılır: sicil onay e-postası gönderir ve alan adını bir süre transfere kapatır. Yalnız yazım hatası düzeltiyor olsanız bile bu sonuç doğabilir.

Profili güncellemek alan adlarını güncellemez

Kayıtlı profil bir şablondur: uygulandığı anda bilgiler alan adına kopyalanır. Sonradan profili düzenlemek o alan adlarına yansımaz, silmek de sicildeki bilgileri kaldırmaz. Değişikliği yaymak için profili her alan adına yeniden uygulayın.

İl alanı iki yerde farklı davranır

Kayıtlı profilde il alanı zorunlu değildir, ama alan adına kişi yazarken zorunludur. İlsiz kaydedilmiş bir profili uygulamak, sağlayıcı o alanı zorunlu tutuyorsa başarısız olabilir. Profilleri ili doldurarak kaydedin.

Gizlilik her uzantıda ücretsiz değildir

Bazı uzantılarda gizlilik ücretsizdir ve doğrudan açılır; bazılarında ise bir ek hizmet satın almayı gerektirir ve alınmadan yapılan çağrı reddedilir. Hangi durumda olduğunu alan adı detayındaki ek hizmet bloğundan okuyun.

Varsayılan profil yalnız yeni kayıtlarda çalışır

Bir profili varsayılan yapmak, bundan sonraki kayıt ve transferlerde onu kendiliğinden uygular. Elinizdeki alan adlarına dokunmaz. Var olanları hizaya getirmek için profili her birine ayrıca uygulamanız gerekir.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.