cloudflare ve api ile otomatik dns kaydi guncelleme

17 Ekim 2016 "Cloudflare uzerinden otomatik dns kaydi guncelleme"

Cloudflare api için kullanılması gereken adres:

https://api.cloudflare.com/client/v4/

ilerde daha yeni versiyonu çıkarsa sondaki v4 eki değişebilir. Api hakkında genel bilgileri https://api.cloudflare.com/#getting-started-endpoints adresinden alabilirsiniz.

İstekleri gönderirken ya API key (X-Auth-Key) ve üye Email (X-Auth-Email) bilgileri birlikte gönderilmeli. Yada servise özel bir User Service Key (X-Auth-User-Service-Key) degeri gönderilmeli. X-Auth-User-Service-Key keyini kendimiz oluşturabiliyoruz ve bazı kısıtlamalar yapabiliyoruz.

Apı key ve Uye Email ile gönderim şekli:
curl -X GET "https://api.cloudflare.com/client/v4/zones/cd7d0123e3012345da9420df9514dad0" \
-H "Content-Type:application/json" \
-H "X-Auth-Key:1234567893feefc5f0q5000bfo0c38d90bbeb" \
-H "X-Auth-Email:example@example.com"

User Service Key ile gönderim şekli:
curl -X GET "https://api.cloudflare.com/client/v4/zones/cd7d0123e3012345da9420df9514dad0" \
-H "Content-Type:application/json" \
-H "X-Auth-User-Service-Key:v1.0-e24fd090c02efcfecb4de8f4ff246fd5c75b48946fdf0ce26c59f91d0d90797b-cfa33fe60e8e34073c149323454383fc9005d25c9b4c502c2f063457ef65322eade065975001a0b4b4c591c5e1bd36a6e8f7e2d4fa8a9ec01c64c041e99530c2-07b9efe0acd78c82c8d9c690aacb8656d81c369246d7f996a205fe3c18e9254a"`

Limitler:
5 dakikalık süre içerisinde maksimum 1200 istek gönderilebiliyor. Eğer cache silme işlemi yapmak istersek onun limit degeri daha az (her 24 saate toplam 2000 defa) ayrıca bir api isteginde maksimum 30 tag cache silme işlemi yapabiliriz.

İstek sonuçlarını ayrıca sayfalandırırak da isteyebiliriz. Bunun içinde api sayfasını inceleyebilirsiniz.

Gelen sonuçlarda eğer başarısız ise error objesinde sayısal bir değer ve mesaj bulunacaktır. ayrca success adında bir flada işlem durumunu verir ture veya false olarak. Zaman alanları UTC ISO-8601 formatıdna verilmektedir.

Restful api oldugu için http response kodu olarak asagıdakiler gönderilmektedir:

Code Status Description
200 OK request successful
304 Not Modified
400 Bad Request request was invalid
401 Unauthorized user does not have permission
403 Forbidden request not authenticated
429 Too many requests client is rate limited
405 Method Not Allowed incorrect HTTP method provided
415 Unsupported Media Type response is not valid JSON

DNS kayıtlarını listelemek ve filtrelemek için:
GET /zones/:zone_identifier/dns_records
curl -X GET "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records?type=A&name=example.com&content=127.0.0.1&page=1&per_page=20&order=type&direction=desc&match=all" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json"

DNS kayıtlarını güncellemek için:
PUT /zones/:zone_identifier/dns_records/:identifier
örnek:
curl -X PUT "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records/372e67954025e0ba6aaa6d586b9e0b59" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json" \
--data '{"id":"372e67954025e0ba6aaa6d586b9e0b59","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"023e105f4ecef8ad9ca31a8372d0c353","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'

zone_id degeri için api 'ye GET /zones?name=example.com yapabiliriz. Orada zone id degeri verilecek. Ornek kullanımı:
curl -X GET "https://api.cloudflare.com/client/v4/zones?name=example.com&status=active&page=1&per_page=20&order=status&direction=desc&match=all" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \
-H "Content-Type: application/json"

dönen cevapda result objesi içerisinde id alanı var, bu bizim zoneid (:zone_identifier) degerimiz.

şimdi değiştirmek istedigimiz DNS kaydının değerini bulmamız gerekiyor. mesela webserver.example.com A kaydının id degerini bulalım:

curl -X GET "https://api.cloudflare.com/client/v4/zones/dac9320b638f5e225cf483cc5cfdda41/dns_records?name=webserver.example.com" \
-H "X-Auth-Email: email@example.com" \
-H "X-Auth-Key: 9a7806061c88ada191ed06f989cc3dac" \
-H "Content-Type: application/json"

dönen cevapda yine result objesi içerisinde bir id alanı var, bu bizim DNS kaydımızın id degeri.

mesela webserver.example.com dns kaydını degiştirmek için bash script yazmak için bu iki bilgiyi kullanabiliriz artık:

#!/bin/sh

[ ! -f /var/tmp/current_ip.txt ] && touch /var/tmp/currentip.txt

NEWIP=`dig +short myip.opendns.com @resolver1.opendns.com`
CURRENTIP=`cat /var/tmp/currentip.txt`

if [ "$NEWIP" = "$CURRENTIP" ]
then
echo "IP address unchanged"
else
curl -X PUT "https://api.cloudflare.com/client/v4/zones/dac9320b638f5e225cf483cc5cfdda41/dns_records/8ada191ed06f989cc3dac9a7806061c8" \
-H "X-Auth-Email: email@example.com" \
-H "X-Auth-Key: 9a7806061c88ada191ed06f989cc3dac" \
-H "Content-Type: application/json" \
--data "{\"type\":\"A\",\"name\":\"webserver.example.com\",\"content\":\"$NEWIP\"}"
echo $NEWIP > /var/tmp/currentip.txt
fi

yukardaki bash scriptini cron olarak atarsak, sürekli ip kontrolü yapar ve gerektiginde degişikliği saglar. bu arada guzel bir anlatim buldum http://torb.at/cloudflare-dynamic-dns sayfasinda guzelce anlatmis. detayli olarak bakmak isteyenler olursa oradan da bakabilir.

Yazar Hakkında
FatihYILMAZ "Duyurmaya değer bir şey yapmıyor, ya da yaptıkları çok gizli, duyurmak istemiyor." Yazara Ait Diğer Yazılar
İlginizi Çekebilecek Diğer Yazılar
Yasaklar bir tek OpenDns'e yaradıYasaklanan sitelerin arka kapısı OpenDNS, internet trafiğinin yüzde 1'ine ulaştı.
Google DNS tespiti istiyorGoogle'ın son isteği internet kullanıcılarını korkuttu. İnternetin devi, DNS sisteminin yer bazlı olmasını istedi.
OpenDNS Ayarları Nasıl Yapılır?İnternette sınırlara takılmadan seyahat etmek için yapmanız gerekenler
Facebook'tan yazılımcılara kolaylıkFacebook, yeni bir program yaratma API'si yarattı, böylece kullanıcılar başka bir programı baz alarak yeni programları kolaylıkla yaratacaklar.
Yorumlar Yorum Ekle
Yorum yazabilmek için, Yeni Kayıt Oluşturun veya Site Girişi Yapın




Tüm Liste »

Son Gönderilen 20 Yazı

borsa linkleri laravel - homestead üzerine mongodb eklemek laravel - custom monolog git notlari ajax kod örnegi - finans servisi tooltip için Borsa notları - Bireysel Yatırımcı Psikolojisi borsa notları - aselsan cloudflare ve api ile otomatik dns kaydi guncelleme mRemoteNG config dosyası confCons.xml yerini değiştirmek için macos memcached kurmak ve php ile memcache baglantisi saglamak gram altın değeri euro cinsinden nasıl hesaplanır? dolar ve türk lirası ol laravel 5 - config ayarları olmadan birden çok veritabanına bağlanmak Yunan Krizi Son Durum - Maliye Bakanlari Anlaşamadi - Liderler toplantisi iptal 18.06.2014 - 19.06.2015: borsa istanbul, Foreks dolar ve euro için takip notlar nodejs kurulum notları Circle Spike Run - Yeni ücretsiz Android Oyunu opel corsa için bazı kullanışlı ayarlar Tap Cowboy - Ücretsiz Android Mobil Telefon Oyunu - Kovboy Oyunu sevenlere mac os kullanirken ntfs dosya sistemine yazmak TP-LINK modemde port açmak - tum adsl modemlerde gecerli yontem

Popüler Yazılar

CNBC-E 'de Twitter Çılgınlığına Katıldı Legend and Killers'in Detayları Belli Oldu Rise of the Godslayer oyuncuları çağırıyor David Cage'in Chronicles Üzüntüsü Call of Duty: Black Ops dan yeni ekran görüntüleri IBM'in Tercihi Firefox "Her Evde 3D TV Olacak" Mafia 2'nin İlk Yapımcı Günlüğü Ortaya Çıktı FIFA Manager 11 Duyuruldu "Blu-ray Kaybedecek" Sin City 2 Baştan Yazılıyor Civilization V Collector's Edition paketi Ölü doğan cep telefonları Crysis 2 Collector's Edition Dragon Age 2 den yeni ekran görüntüleri

En Yeni Videolar

Çin malı cep telefonlarına IMEI kopyalama - IMEI Yedekleme Arch Enemy İstanbulda - 27 Ocak 2012 Karanlık Saat (The Darkest Hour) VİZYONDA! 2012 Eurovision Temsilcimiz CAN BONOMO! Film önerisi: Duplicity - Sahtekarlar Türkçe Adsense Resmi Youtube Kanalı açıldı. Nasıl iPhone kullanarak, windows laptop internete bağlanır? En Populer iPhone Oyunları: Fruit Ninja, Plants vs Zombies, Angry Birds - I ABIT 'den Kol Saati ve Cep Telefonu Bir Arada. RailGun silahları gerçek oluyor. Google Earth 6 duyuruldu, artık ağaçlar bile 3 boyutlu. iPhone ve İnternet Adres Sorunu Crysis 2'ye Yeni Tarih FIFA 11 için Yeni Tanıtım Videosu Yayınlandı Street Fighter ve Tekken Sonunda Bir Araya Geliyor

En Son Yorumlar

» GokhanYILMAZ@22:21: "hey gidi"
» FatihYILMAZ@12:35: "steve jobs öldü belki ama mirası yükselmeye devam ediyor. "
» paranoiahasu@19:19: "Eklenti seçenekleri biraz daha fazla olsa, kullanıcılarının bü..."
» Silphatos@19:02: "güzel olmuş, severim richard abimi. artık şatoya kat çeker para..."
» paranoiahasu@13:28: "beklentilerin gerisinde olan getiriler şirketler için zarar olmuş..."
» CeUn@11:42: "hem "kar" yapıp hem zarar etmek nasıl oluyor acaba.."
» paranoiahasu@16:25: "Core i7 serisinin ısınma sorununa da bir çare bulurlar umarım. S..."
» FatihYILMAZ@14:06: "BP battıkca batıyor be. bu nedir şimdi yani."
» paranoiahasu@02:25: "güçlü işlemci ve ram seçeneği ile bu tür telefonlar teknoloji..."
» paranoiahasu@02:24: "ilginç bir durum aslında. özellikle netbook satışlarının tava..."
» MrHades@12:34: "güzel olacağa benziyor."
» OzanFIRAT@11:49: "yarısı DLC olarak sunulur zaten hehe "
» OzanFIRAT@11:48: "benim 3.5 kiloluk darbeye dayanıksız, hatta taşımaya dayanaksız..."
» paranoiahasu@18:47: "Listede de yok yok maşallah =)"
» paranoiahasu@13:10: "Şu an betayı x1900 gt ekran kartı (256 bit) ve 3 gb ram ile oynuy..."
» FatihYILMAZ@18:02: "apple delisi kuyuya bir taş attı, artık tutabilene aşkolsun. tel..."
» paranoiahasu@13:59: "wave de çok iyi satıyormuş"
» OzanFIRAT@11:36: "herşeyiyle bana SWG'yi hatırlattı, sanırım kasten gelişimleri ..."
» OzanFIRAT@22:33: "heh bende ps3'te infamous oynarken aynı şeyleri hissediyordum :D "
» paranoiahasu@23:21: "ön sipariş linki aradım yazıda bulamadım .."
» paranoiahasu@19:15: "bu resmi uzunca bir süre duvar kağıdı olarak kullanmıştım =)"
» FatihYILMAZ@11:48: "ehe evde x-box'da bunu oynuyorum. Oyunun kendisini tavsiye ederim, ..."
» paranoiahasu@14:33: "Hemen edinmeli bu albümü =)"
» paranoiahasu@02:16: "İnanılmaz şekilde kredi kartımı kabul etmeyen steam yüzünden ..."
» OzanFIRAT@23:36: "haberi bitirmeyi beklemeden, yazarken sabredemeyip Left 4 Dead 2 ve ..."

Evvel Zaman