API Dokumentáció

Egyszerűen integrálható REST API

Gyors használat

Az IP címed lekérdezése terminálból:

curl who-is.hu/ip

Válasz: 203.0.113.42

Végpontok

GET /ip

Visszaadja a kliens IP címét egyszerű szövegként.

curl who-is.hu/ip

Válasz (text/plain):

203.0.113.42

GET /json

Visszaadja a kliens IP címét és a hozzá tartozó információkat JSON formátumban.

curl who-is.hu/json

Válasz (application/json):

{
  "ip": "203.0.113.42",
  "version": "IPv4",
  "organization": "Example ISP",
  "network": "EXAMPLE-NET",
  "asn": "AS64496",
  "cidr": "203.0.113.0/24",
  "country": "HU"
}

GET /api/myip

Visszaadja a kliens IP címét JSON formátumban (minimális).

curl who-is.hu/api/myip

Válasz:

{
  "ip": "203.0.113.42",
  "version": "IPv4"
}

GET /api/lookup/{query}

IP cím vagy domain lekérdezés. A {query} lehet IPv4, IPv6 cím vagy domain név.

curl who-is.hu/api/lookup/8.8.8.8

Válasz IP címre:

{
  "query": "8.8.8.8",
  "type": "ipv4",
  "ip": {
    "ip": "8.8.8.8",
    "version": "ipv4",
    "organization": "Google LLC",
    "network": "GOGL",
    "asn": "AS15169",
    "cidr": "8.8.8.0/24",
    "country": "US"
  }
}
curl who-is.hu/api/lookup/example.com

Válasz domain névre:

{
  "query": "example.com",
  "type": "domain",
  "dns": {
    "a": ["93.184.215.14"],
    "aaaa": ["2606:2800:21f:cb07:6820:80da:af6b:8b2c"],
    "mx": ["mail.example.com"],
    "ns": ["a.iana-servers.net", "b.iana-servers.net"],
    "txt": ["v=spf1 -all"],
    "soa": "ns.icann.org. noc.dns.icann.org. 2024011001 7200 3600 1209600 3600",
    "caa": ["0 issue \"letsencrypt.org\""]
  },
  "ip": {
    "ip": "93.184.215.14",
    "version": "ipv4",
    "organization": "EDGECAST"
  }
}

GET /api/health

Szolgáltatás állapot ellenőrzés.

curl who-is.hu/api/health

Válasz:

{"status": "ok"}

Használati példák

Bash script

#!/bin/bash
MY_IP=$(curl -s who-is.hu/ip)
echo "Az IP címed: $MY_IP"

Python

import requests

# Egyszerű IP lekérdezés
ip = requests.get('https://who-is.hu/ip').text
print(f'IP: {ip}')

# Részletes JSON
data = requests.get('https://who-is.hu/json').json()
print(f'Szervezet: {data.get("organization")}')

JavaScript (fetch)

// Egyszerű IP
fetch('https://who-is.hu/ip')
  .then(r => r.text())
  .then(ip => console.log('IP:', ip));

// JSON
fetch('https://who-is.hu/json')
  .then(r => r.json())
  .then(data => console.log(data));

Rate Limiting

A szolgáltatás korlátozza a kérések számát a visszaélés megakadályozása érdekében:

Túllépés esetén 429 Too Many Requests választ kapsz.

Hibák

Hiba esetén JSON formátumú hibaüzenet érkezik:

{
  "error": "invalid query"
}
400 Érvénytelen kérés (rossz IP/domain formátum)
429 Túl sok kérés (rate limit)
500 Szerver hiba