GET /api/ip
ip (optional), format=json|text
Genel IP ve yaklaşık konum; geoStatus ve boş alanları kontrol edin.
Ücretsiz REST API · JSON ve düz metin
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.
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.
# One request. Plain text skips the geolocation provider.
# Keep the value in memory; do not put it in analytics or logs.
if public_ip=$(curl --fail --silent --show-error \
--connect-timeout 5 --max-time 10 \
'https://ipbulucu.org/api/ip?format=text'); then
printf 'Public IP received.\n'
else
printf 'Lookup failed; no automatic retry.\n' >&2
fi// 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();# Python 3; install dependency: python -m pip install requests
# Save as lookup.py and run: python lookup.py
import requests
def get_ip(target_ip=None):
params = {"format": "json"}
if target_ip:
params["ip"] = target_ip
try:
response = requests.get(
"https://ipbulucu.org/api/ip", params=params, timeout=(5, 10)
)
except requests.RequestException:
raise RuntimeError("Network request failed or timed out") from None
if response.status_code == 429:
raise RuntimeError("HTTP 429: wait for Retry-After before another request")
if not 200 <= response.status_code < 300:
raise RuntimeError("HTTP " + str(response.status_code))
try:
data = response.json()
except ValueError:
raise RuntimeError("Invalid JSON response") from None
if not isinstance(data, dict) or data.get("success") is not True or not isinstance(data.get("ip"), str):
raise RuntimeError("API did not return a successful IP lookup")
return data
def main():
try:
# No argument: the server's egress IP, not an end user's IP.
data = get_ip()
# Fixed labels only; no lookup input or response values in logs.
if data.get("geoStatus") == "available" and data.get("partial") is not True:
print("IP and approximate location available")
else:
print("IP available; location incomplete or unavailable")
except RuntimeError:
print("Lookup failed; no automatic retry")
raise SystemExit(1)
if __name__ == "__main__":
main()| Durum | Anlamı |
|---|---|
| success: true | İşlem sonuç üretti; her alanın ölçüldüğünü göstermez. |
| geoStatus: unavailable | IP bulunabilir ancak konum verisi alınamamış olabilir. Boş değerleri bilinmiyor olarak tutun. |
| partial: true | Bazı kontroller tamamlanamadı. Kaynak sonuçlarını ve limitations alanını okuyun; tam başarı saymayın. |
| HTTP 400 / 405 | Girdiyi veya yöntemi düzeltin. Aynı isteği tekrarlamayın. |
| HTTP 429 | Durun ve Retry-After süresini bekleyin. Örnekler otomatik tekrar deneme yapmaz. |
| HTTP 5xx / timeout | Sonuç 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.
Temel adres: https://ipbulucu.org/api. Aşağıdaki uç noktalar GET kullanır. Parametre türleri ve yanıt şemaları OpenAPI belgesindedir.
ip (optional), format=json|text
Genel IP ve yaklaşık konum; geoStatus ve boş alanları kontrol edin.
domain
RDAP kayıt bilgisi; uzantı ve alan kapsamı sağlayıcıya bağlıdır.
host, port | ports
Sunucumuzdan TCP bağlantısı. open, closed, filtered ve unavailable farklı sonuçlardır.
host
Google DoH üzerinden A, AAAA, MX, TXT, NS, CNAME ve SOA kayıtları.
host, type
Tek sunucudan iki DNS çözümleyici karşılaştırılır; dünya geneli yayılım ölçülmez.
ip
DNSBL kaynaklarında listelenme. Kontrol edilemeyen kaynak temiz sayılmaz.
url
HTTP başlıkları ve güvenlik başlıklarının varlığı; güvenlik sertifikası değildir.
host
Sunucu güven deposuyla TLS zinciri, ana makine adı ve tarih kontrolü.
domain
MX, SPF ve doğrudan DMARC kaydı; teslimat ve tam politika doğrulaması yapılmaz.
cidr
IPv4 alt ağ sınırlarını hesaplar.
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.
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ğrulamaNode.js CommonJS istemcisi. getIp, getWhois, checkPort.
npm install ipbulucuSenkron requests kütüphanesi. get_ip, get_whois, check_port. Yerleşik CLI veya async API içermez.
pip install ipbulucuSite, SDK ve Chrome eklentisi kaynakları. Depo sürümü ile mağaza onayı farklı durumlardır.
codeonthetable →