Узнайте всё про любой IP-адрес

Провайдер, ASN, страна и город, принадлежность к датацентру, VPN, Tor или прокси — одним запросом

76.8MIPv4-префиксов
92 551ASN
25M+меток Proxy/VPN
119KDC-диапазонов

Что мы детектируем

Признаки ASN/BGP, публичные cloud-диапазоны, VPN

VPN

Коммерческие и бесплатные VPN

Tor

Выходные, входные и relay-ноды

Proxy

Публичные, веб-прокси

Датацентр

AWS, Azure, GCP, DigitalOcean, OVH и 100+ других

Mobile

Диапазоны мобильных операторов

Местоположение

Страна, город, координаты, индекс и часовой пояс

REST API

Один эндпоинт, JSON-ответ. Без авторизации, 60 req/min

GET https://api.geoipboss.net/api/v1/ip/{ip|domain|random}/full 60 req/min: *
# проверка конкретного IP
curl "https://api.geoipboss.net/api/v1/ip/8.8.8.8/full"

# по доменному имени
curl "https://api.geoipboss.net/api/v1/ip/example.com/full"

# случайный публичный IP — удобно для тестов
curl "https://api.geoipboss.net/api/v1/ip/random/full"
import httpx

r = httpx.get("https://api.geoipboss.net/api/v1/ip/8.8.8.8/full")
data = r.json()["data"]

if data["threat"] and data["threat"].get("is_tor"):
    print("TOR exit node")
elif data["threat"] and data["threat"].get("is_datacenter"):
    print("Datacenter:", data["threat"]["cloud_provider"])
else:
    print("Clean:", data["isp"]["isp"])
package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    resp, _ := http.Get("https://api.geoipboss.net/api/v1/ip/8.8.8.8/full")
    defer resp.Body.Close()

    var out struct {
        Success bool                   `json:"success"`
        Data    map[string]interface{} `json:"data"`
    }
    json.NewDecoder(resp.Body).Decode(&out)
    fmt.Printf("%+v\n", out.Data["threat"])
}
const r = await fetch('https://api.geoipboss.net/api/v1/ip/8.8.8.8/full');
const { data } = await r.json();

if (data.threat?.is_vpn) {
  console.warn('VPN exit:', data.threat.proxy_type, data.isp?.org);
}
// также поддерживается домен
const byDomain = await fetch('https://api.geoipboss.net/api/v1/ip/example.com/full');
{
  "success": true,
  "data": {
    "ip_address": "185.220.101.1",
    "country": {
      "ccode": "de", "country": "ФРГ",
      "location": "Бранденбург, Бранденбург",
      "latitude": 52.6171, "longitude": 13.1207,
      "isproxy": true, "issatellite": false
    },
    "isp": {
      "isp": "Stiftung Erneuerbare Freiheit",
      "org": "Stiftung Erneuerbare Freiheit",
      "ismobile": false
    },
    "threat": {
      "is_proxy": true, "is_vpn": true, "is_tor": true,
      "is_datacenter": false,
      "proxy_type": "TOR", "usage_type": "anonymous",
      "confidence_weight": 1.0,
      "asn": 60729, "org": "Stiftung Erneuerbare Freiheit"
    }
  }
}