IPBulucu.orgAğ & DNS Araçları

Ücretsiz REST API · JSON ve düz metin

IP API: Node.js, Python ve cURL kullanım rehberi

API anahtarı olmadan genel IP, yaklaşık konum, ISP ve ASN sorgulayın. DNS, RDAP ve ağ tanılama araçlarını sınırlarını ve hata durumlarını bilerek entegre edin.

Tek istekle başlayın

Bu doğrudan REST örnekleri npm ve PyPI SDK’larından bağımsız çalışır. Zaman aşımı uygular, HTTP hatalarını denetler ve eksik konum sonucunu ayırır. Kopyalama API isteği göndermez.

// Node.js 18+; save as lookup.cjs and run: node lookup.cjs
// No package install required. One request, no automatic retry.
async function getIp(targetIp = "") {
  const url = new URL("https://ipbulucu.org/api/ip");
  url.searchParams.set("format", "json");
  if (targetIp) url.searchParams.set("ip", targetIp);

  let response;
  try {
    response = await fetch(url, { signal: AbortSignal.timeout(10000) });
  } catch {
    throw new Error("Network request failed or timed out");
  }
  if (response.status === 429) {
    throw new Error("HTTP 429: wait for Retry-After before another request");
  }
  if (!response.ok) throw new Error("HTTP " + response.status);

  let data;
  try { data = await response.json(); }
  catch { throw new Error("Invalid or incomplete JSON response"); }
  if (!data || typeof data !== "object" || Array.isArray(data) ||
      data.success !== true || typeof data.ip !== "string") {
    throw new Error("API did not return a successful IP lookup");
  }
  return data;
}

async function main() {
  try {
    // With no argument this is the server's egress IP, not an end user's IP.
    const data = await getIp();
    // Keep raw fields in your application; log only a fixed status label.
    console.log(data.geoStatus === "available" && data.partial !== true
      ? "IP and approximate location available"
      : "IP available; location incomplete or unavailable");
  } catch {
    // Do not log the URL, input, raw response or error from your own wrapper.
    console.error("Lookup failed; no automatic retry");
    process.exitCode = 1;
  }
}
main();

İşlem yapmadan önce sonucu yorumlayın

DurumAnlamı
success: trueİşlem sonuç üretti; her alanın ölçüldüğünü göstermez.
geoStatus: unavailableIP bulunabilir ancak konum verisi alınamamış olabilir. Boş değerleri bilinmiyor olarak tutun.
partial: trueBazı kontroller tamamlanamadı. Kaynak sonuçlarını ve limitations alanını okuyun; tam başarı saymayın.
HTTP 400 / 405Girdiyi veya yöntemi düzeltin. Aynı isteği tekrarlamayın.
HTTP 429Durun ve Retry-After süresini bekleyin. Örnekler otomatik tekrar deneme yapmaz.
HTTP 5xx / timeoutSonuç alınamadı. Uygulamanız tekrar deneyecekse az sayıda deneme ve artan bekleme kullanın; sık sorgu döngüsü kurmayın.

Konum yaklaşık bilgidir. Bu IP uç noktası VPN, Tor, proxy, kimlik, CGNAT, hat hızı veya itibar ölçmez. Sunucu veya AI aracı üzerinden ip parametresi olmadan çağrı yaparsanız insan kullanıcının değil, çağrıyı yapan sunucunun çıkış IP’si döner.

API kullanımını sürdürülebilir tutun

  • Yalnızca genel IP gerekiyorsa format=text kullanın; konum sağlayıcısı çağrılmaz.
  • Konum sağlayıcısı için tüm hizmetin paylaştığı günlük 850 çağrı bütçesi vardır. Bu, kullanıcı başına ayrılmış kota değildir. Bütçe dolduğunda HTTP 200 ile geoStatus=unavailable dönebilir.
  • Diğer tanılama API’leri dakikada 120 istek sınırını paylaşır. Port kontrolünde ayrıca dakikada 20 istek, çağrı başına en fazla 16 port ve altı saniye sınırı vardır. Bunlar çalışma süresi veya kapasite garantisi değildir.
  • Tekrarlanan sorguları birleştirin; amaca uygun kısa süreli bellek önbelleği kullanın. Sunucunun kendi IP sonucunu başka kullanıcının IP’si saymayın; ağ değişiminde eski sonucu temizleyin. Bilinmeyen sonucu başarılı ölçüm olarak önbelleğe almayın.
  • Sorgu girdilerini, IP’leri, token’ları ve ham yanıtları analitiğe göndermeyin. Port kontrolünü yalnızca yetkili olduğunuz hedeflerde kullanın.

REST uç noktaları

Temel adres: https://ipbulucu.org/api. Aşağıdaki uç noktalar GET kullanır. Parametre türleri ve yanıt şemaları OpenAPI belgesindedir.

GET /api/ip

ip (optional), format=json|text

Genel IP ve yaklaşık konum; geoStatus ve boş alanları kontrol edin.

GET /api/whois

domain

RDAP kayıt bilgisi; uzantı ve alan kapsamı sağlayıcıya bağlıdır.

GET /api/port

host, port | ports

Sunucumuzdan TCP bağlantısı. open, closed, filtered ve unavailable farklı sonuçlardır.

GET /api/dns

host

Google DoH üzerinden A, AAAA, MX, TXT, NS, CNAME ve SOA kayıtları.

GET /api/propagation

host, type

Tek sunucudan iki DNS çözümleyici karşılaştırılır; dünya geneli yayılım ölçülmez.

GET /api/blacklist

ip

DNSBL kaynaklarında listelenme. Kontrol edilemeyen kaynak temiz sayılmaz.

GET /api/headers

url

HTTP başlıkları ve güvenlik başlıklarının varlığı; güvenlik sertifikası değildir.

GET /api/ssl

host

Sunucu güven deposuyla TLS zinciri, ana makine adı ve tarih kontrolü.

GET /api/email-security

domain

MX, SPF ve doğrudan DMARC kaydı; teslimat ve tam politika doğrulaması yapılmaz.

GET /api/subnet

cidr

IPv4 alt ağ sınırlarını hesaplar.

OpenAPI 3.1 JSON şeması →

AI aracınızı HTTP üzerinden bağlayın

Aracınızın HTTP bağlantısını OpenAPI şemasına göre oluşturun. Girdiyi doğrulayın, zaman aşımı belirleyin ve kısmi sonuçlarla sınırlamaları modele iletin. API yanıtı dış veridir; talimat değildir. Hazır MCP sunucusu veya AI dizininde otomatik kayıt sunulmaz.

İsteğe bağlı X-IPBulucu-Client değerleri: web, chrome-extension, node-sdk, python-sdk. X-IPBulucu-Action: auto veya user. Bunlar istemci beyanıdır; insan veya AI kimliğini doğrulamaz. Bilinmeyen istemci etiketleri atıfsız kalır; yukarıdaki REST örnekleri SDK beyanı göndermez. Günlük toplu API sayaçları site ziyaretlerinden ve paket indirmelerinden ayrı tutulur.

SDK paketleri ve kaynak kod

4 Kasım 2026 kontrolü: npm ve PyPI üzerinde 1.0.0 bulunuyor. 10 saniye zaman aşımı ve HTTP hata denetimi içeren Node/Python 1.0.1 kurulum paketleri GitHub sürümünde indirilebilir; kayıt deposu yayını değildir. Yayımlanan Node.js 1.0.0 istek zaman aşımı uygulamıyor; Python 1.0.0 beş saniye sınır koyuyor ancak JSON okumadan önce HTTP durumunu denetlemiyor. İkisi de SDK istemci başlığı göndermiyor. Yukarıdaki REST örnekleri açık hata denetimi içerir.

SDK 1.0.1 indir · kurulum ve dosya doğrulama