10 tane clodfare hesap açtım
her siteye 50 tane site belirledim
ip adres belli
api token de aldım
puty üzerinden çalıştıracağım
yapay zekaya sordum çıkmaza girdim
sorun çözüldü
Clodfare Konusunda Yardıma İhtiyacım Var
4
●162
- 08-09-2026, 16:12:33Üyeliği durduruldu
- 08-09-2026, 16:20:56Merhaba,LINK_SATISI adlı üyeden alıntı: mesajı görüntüle
- Token yetkisi. Sadece Zone:Read almışsan zone eklemez. Token'da şunlar olacak: Account > Account Settings > Read, Zone > Zone > Edit, Zone > DNS > Edit. Resource kısmında da o hesabın account'unu seçeceksin, "All accounts" değil.
- Account ID. Zone eklerken account id şart. Her hesap için farklı, dashboard'dan veya /accounts endpoint'inden alacaksın.
- Free planda hesap başına 50 zone sınırı var — zaten 10 hesap × 50 demişsin, doğru kurgulamışsın. 51.'de 1117 hatası alırsın, panik yapma, limit odur.
/root/cf/ ├── cf.sh ├── hesap01/domains.txt ├── hesap02/domains.txt
Her domains.txt içine alt alta 50 domain (sadece site.com, başında http/www olmasın).
cf.sh:
#!/bin/bash # Kullanım: ./cf.sh <token> <account_id> <domains.txt> <ip> set -u TOKEN="$1" ACCOUNT="$2" LIST="$3" IP="$4" API="https://api.cloudflare.com/client/v4" OUT="ns_$(date +%s).csv" cf() { curl -s -X "$1" "$API$2" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ ${3:+--data "$3"}; } echo "domain,zone_id,ns1,ns2,durum" > "$OUT" while read -r D; do D=$(echo "$D" | tr -d '\r' | xargs) [ -z "$D" ] && continue # 1) Zone ekle R=$(cf POST "/zones" "{\"name\":\"$D\",\"account\":{\"id\":\"$ACCOUNT\"},\"type\":\"full\"}") OK=$(echo "$R" | jq -r '.success') if [ "$OK" != "true" ]; then # zaten ekliyse id'yi çek, devam et ZID=$(cf GET "/zones?name=$D" | jq -r '.result[0].id // empty') if [ -z "$ZID" ]; then echo "$D,,,,HATA: $(echo "$R" | jq -c '.errors')" >> "$OUT" echo "[X] $D -> $(echo "$R" | jq -r '.errors[0].message')" sleep 1; continue fi echo "[!] $D zaten ekli, devam" else ZID=$(echo "$R" | jq -r '.result.id') fi NS=$(cf GET "/zones/$ZID" | jq -r '.result.name_servers | @csv' | tr -d '"') # 2) A kayıtları (proxy açık) cf POST "/zones/$ZID/dns_records" \ "{\"type\":\"A\",\"name\":\"$D\",\"content\":\"$IP\",\"ttl\":1,\"proxied\":true}" > /dev/null cf POST "/zones/$ZID/dns_records" \ "{\"type\":\"A\",\"name\":\"www\",\"content\":\"$IP\",\"ttl\":1,\"proxied\":true}" > /dev/null # 3) SSL ve yönlendirme ayarları cf PATCH "/zones/$ZID/settings/ssl" '{"value":"full"}' > /dev/null cf PATCH "/zones/$ZID/settings/always_use_https" '{"value":"on"}' > /dev/null echo "$D,$ZID,$NS,OK" >> "$OUT" echo "[✓] $D -> $NS" sleep 0.5 # rate limit: 5 dk'da 1200 istek done < "$LIST" echo "Bitti. NS listesi: $OUT" #!/bin/bash # Kullanım: ./cf.sh <token> <account_id> <domains.txt> <ip> set -u TOKEN="$1" ACCOUNT="$2" LIST="$3" IP="$4" API="https://api.cloudflare.com/client/v4" OUT="ns_$(date +%s).csv" cf() { curl -s -X "$1" "$API$2" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ ${3:+--data "$3"}; } echo "domain,zone_id,ns1,ns2,durum" > "$OUT" while read -r D; do D=$(echo "$D" | tr -d '\r' | xargs) [ -z "$D" ] && continue # 1) Zone ekle R=$(cf POST "/zones" "{\"name\":\"$D\",\"account\":{\"id\":\"$ACCOUNT\"},\"type\":\"full\"}") OK=$(echo "$R" | jq -r '.success') if [ "$OK" != "true" ]; then # zaten ekliyse id'yi çek, devam et ZID=$(cf GET "/zones?name=$D" | jq -r '.result[0].id // empty') if [ -z "$ZID" ]; then echo "$D,,,,HATA: $(echo "$R" | jq -c '.errors')" >> "$OUT" echo "[X] $D -> $(echo "$R" | jq -r '.errors[0].message')" sleep 1; continue fi echo "[!] $D zaten ekli, devam" else ZID=$(echo "$R" | jq -r '.result.id') fi NS=$(cf GET "/zones/$ZID" | jq -r '.result.name_servers | @csv' | tr -d '"') # 2) A kayıtları (proxy açık) cf POST "/zones/$ZID/dns_records" \ "{\"type\":\"A\",\"name\":\"$D\",\"content\":\"$IP\",\"ttl\":1,\"proxied\":true}" > /dev/null cf POST "/zones/$ZID/dns_records" \ "{\"type\":\"A\",\"name\":\"www\",\"content\":\"$IP\",\"ttl\":1,\"proxied\":true}" > /dev/null # 3) SSL ve yönlendirme ayarları cf PATCH "/zones/$ZID/settings/ssl" '{"value":"full"}' > /dev/null cf PATCH "/zones/$ZID/settings/always_use_https" '{"value":"on"}' > /dev/null echo "$D,$ZID,$NS,OK" >> "$OUT" echo "[✓] $D -> $NS" sleep 0.5 # rate limit: 5 dk'da 1200 istek done < "$LIST" echo "Bitti. NS listesi: $OUT"
putty ile çalıştırma ;
apt install -y jq curl # jq yoksa hiçbir şey çalışmaz chmod +x cf.sh ./cf.sh "TOKEN_BURAYA" "ACCOUNT_ID_BURAYA" hesap01/domains.txt 1.2.3.4
10 hesap için tek tek uğraşma, hesaplar.csv yapıp döndür:
# format: token;account_id;liste_dosyasi;ip while IFS=';' read -r t a l i; do ./cf.sh "$t" "$a" "$l" "$i" done < hesaplar.csv
Takıldığın yerdeki tam hata çıktısını (.errors kısmını) atarsan daha net bakabilirim. Ücretli destek almak isterseniz whatsapp dan ulaşabilirsiniz - 08-09-2026, 16:28:33abi yazsaydın bir hatayı/sonucu ona göre yorumlardık ama neye yorum yapıcam bilemedim
