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: 216.73.216.53

Végpontok

GET /ip

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

curl who-is.hu/ip

Válasz (text/plain):

216.73.216.53

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": "216.73.216.53",
  "version": "IPv4",
  "asn": "AS16509",
  "country": "US",
  "tor_exit": false
}

GET /api/myip

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

curl who-is.hu/api/myip

Válasz:

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

GET /api/lookup/{query}

IP cím vagy domain lekérdezés.

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",
    "hostname": [
      "dns.google"
    ],
    "asn": "AS15169",
    "country": "US",
    "tor_exit": false
  }
}
curl who-is.hu/api/lookup/who-is.hu

Válasz domain névre:

{
  "query": "who-is.hu",
  "type": "domain",
  "ip": {
    "ip": "188.114.96.2",
    "version": "ipv4",
    "asn": "AS13335",
    "organization": "Cloudflare Abuse Contact",
    "country": "US",
    "network": "CLOUDFLARENET-EU",
    "handle": "188.114.96.0 - 188.114.99.255",
    "cidr": "188.114.96.0/22",
    "tor_exit": false,
    "note": "Data provided by regional internet registries."
  },
  "dns": {
    "domain": "who-is.hu",
    "a": [
      "188.114.96.2",
      "188.114.97.2"
    ],
    "aaaa": [
      "2a06:98c1:3120::2",
      "2a06:98c1:3121::2"
    ],
    "ns": [
      "hunts.ns.cloudflare.com",
      "vita.ns.cloudflare.com"
    ],
    "soa": "hunts.ns.cloudflare.com. dns.cloudflare.com. 2396144553 10000 2400 604800 1800",
    "resolved_ips": {
      "hunts.ns.cloudflare.com": "108.162.195.46",
      "vita.ns.cloudflare.com": "108.162.192.238"
    }
  }
}

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

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

Python

import requests

ip = requests.get('https://who-is.hu/ip').text
print(f'IP: {ip}')

data = requests.get('https://who-is.hu/json').json()
print(f'Organization: {data.get("organization")}')

JavaScript (fetch)

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

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