JSON API

Jednoduchý endpoint pro zjištění veřejné IP adresy a geolokačních dat.

Endpoint

GET https://www.jakoumamip.cz/?json

Přidejte parametr ?json k URL hlavní stránky. Endpoint nevyžaduje autentizaci ani API klíč a vrátí JSON objekt s veřejnou IP adresou volajícího a geolokačními daty.

Příklad odpovědi

Response · 200 OK · Content-Type: application/json
{
  "public-ip": "203.0.113.42",
  "geo": {
    "status":      "success",
    "country":     "Czech Republic",
    "countryCode": "CZ",
    "region":      "PR",
    "regionName":  "Prague",
    "city":        "Prague",
    "isp":         "O2 Czech Republic",
    "org":         "O2 Czech Republic",
    "as":          "AS5610 O2 Czech Republic, a.s."
  }
}

Pole odpovědi

Pole Typ Popis
public-ip string Veřejná IP adresa volajícího (IPv4 nebo IPv6)
geo.status string success nebo fail – výsledek geolokace
geo.country string Název země (anglicky)
geo.countryCode string ISO 3166-1 alpha-2 kód země (např. CZ)
geo.regionName string Název kraje / regionu
geo.city string Město
geo.isp string Poskytovatel internetu (ISP)
geo.org string Organizace přidělující adresní blok
geo.as string Číslo autonomního systému (ASN) a název

HTTP hlavička

Každá odpověď – včetně HTML stránky – obsahuje hlavičku X-public-ip s vaší veřejnou IP adresou. Pokud potřebujete pouze IP bez parsování JSON, stačí přečíst tuto hlavičku z libovolného požadavku na doménu.

Response header
X-public-ip: 203.0.113.42

Příklady použití

# Získat IP a geo data
curl https://www.jakoumamip.cz/?json

# Pouze IP adresa přes hlavičku (rychlejší)
curl -sI https://www.jakoumamip.cz/ | grep -i x-public-ip
# Stáhnout JSON a vypsat
wget -qO- https://www.jakoumamip.cz/?json

# Pouze IP přes hlavičku
wget -qS --spider https://www.jakoumamip.cz/ 2>&1 | grep -i x-public-ip
// Fetch API (browser nebo Node.js)
const res  = await fetch('https://www.jakoumamip.cz/?json');
const data = await res.json();

console.log(data['public-ip']);   // "203.0.113.42"
console.log(data.geo.city);         // "Prague"
import urllib.request, json

with urllib.request.urlopen('https://www.jakoumamip.cz/?json') as r:
    data = json.load(r)

print(data['public-ip'])       # 203.0.113.42
print(data['geo']['city'])     # Prague

Omezení

Geolokační data jsou cachována na straně serveru po dobu 1 hodiny pro každou IP adresu. Endpoint je určen pro příležitostné použití (skripty, diagnostika). Pro produkční aplikace vyžadující vysoký objem požadavků doporučujeme vlastní geolokační řešení.