Documentazione API

API gratuita per geolocalizzazione IP e dati di rete. Nessuna API key, nessuna registrazione.

Per Iniziare

Tutti gli endpoint sono disponibili su HTTP e HTTPS. Nessuna autenticazione richiesta.

# Il tuo IP pubblico (testo semplice) $ curl mioip.info 203.0.113.45 # Tutti i dettagli (JSON) $ curl mioip.info/api/ # Singolo campo $ curl mioip.info/api/city Rome # Qualsiasi IP $ curl mioip.info/api/8.8.8.8/city Mountain View

Il Tuo IP

Restituisce le informazioni relative all'IP del chiamante.

GET /api/

{ "ip": "203.0.113.45", "version": "IPv4", "hostname": "host-203-0-113-45.example.net", "geo": { "country": "Italy", "country_code": "IT", "continent": "Europe", "continent_code": "EU", "region": "Lazio", "region_code": "62", "city": "Rome", "postal": "00100", "latitude": 41.8933, "longitude": 12.4829, "timezone": "Europe/Rome" }, "network": { "asn": "AS12345", "isp": "Example ISP S.P.A.", "org": "example-isp.it", "as": "AS12345 Example ISP S.P.A." }, "request": { "user_agent": "curl/8.5.0", "port": 52413, "method": "GET", "protocol": "HTTP/2.0" } }

GET /api/{campo}

Restituisce un singolo campo come testo semplice.

$ curl mioip.info/api/ip 203.0.113.45 $ curl mioip.info/api/city Rome $ curl mioip.info/api/country_code IT $ curl mioip.info/api/asn AS12345 $ curl mioip.info/api/loc 41.8933,12.4829 $ curl mioip.info/api/timezone Europe/Rome

Lookup IP

Interroga qualsiasi indirizzo IPv4 o IPv6 pubblico. Il blocco request non viene incluso per IP di terzi.

GET /api/{ip}

$ curl mioip.info/api/8.8.8.8 { JSON completo }

GET /api/{ip}/{campo}

$ curl mioip.info/api/8.8.8.8/city Mountain View $ curl mioip.info/api/8.8.8.8/asn AS15169 $ curl mioip.info/api/8.8.8.8/isp Google LLC $ curl mioip.info/api/8.8.8.8/country United States $ curl mioip.info/api/8.8.8.8/loc 37.386,-122.0838 $ curl mioip.info/api/8.8.8.8/timezone America/Los_Angeles $ curl mioip.info/api/8.8.8.8/hostname dns.google

Campi Disponibili

Ogni nome campo è utilizzabile come segmento del path: /api/{campo} oppure /api/{ip}/{campo}

Campo Esempio Descrizione
Identità
ip203.0.113.45Indirizzo IP
versionIPv4Versione protocollo
hostnamehost.example.netReverse DNS
Geolocalizzazione
countryItalyPaese
country_codeITCodice paese ISO 3166
continentEuropeContinente
continent_codeEUCodice continente
regionLazioRegione / Stato
region_code62Codice regione ISO 3166-2
cityRomeCittà
postal00100Codice postale
latitude41.8933Latitudine
longitude12.4829Longitudine
loc41.8933,12.4829Coordinate (lat,lon)
timezoneEurope/RomeFuso orario IANA
Rete
asnAS12345Autonomous System Number
ispExample ISP S.P.A.Nome del provider
orgexample-isp.itDominio dell'organizzazione
asAS12345 Example ISPASN + nome provider
Richiesta (solo il tuo IP)
user_agentcurl/8.5.0User Agent del client
port52413Porta remota
methodGETMetodo HTTP
protocolHTTP/2.0Protocollo server
Alias
host→ hostname
zip→ postal
tz→ timezone
ua→ user_agent

Utility

GET /api/headers

Restituisce tutti gli header HTTP inviati dal client.

$ curl mioip.info/api/headers {"ip":"203.0.113.45","headers":{"host":"mioip.info","accept":"*/*","user-agent":"curl/8.5.0"}}

GET /api/validate/{ip}

Verifica se un IP è valido, privato, riservato o bogon.

$ curl mioip.info/api/validate/8.8.8.8 {"ip":"8.8.8.8","valid":true,"version":"IPv4","is_private":false,"is_reserved":false,"is_bogon":false} $ curl mioip.info/api/validate/192.168.1.1 {"ip":"192.168.1.1","valid":true,"version":"IPv4","is_private":true,"is_reserved":false,"is_bogon":true} $ curl mioip.info/api/validate/abc {"ip":"abc","valid":false,"version":null,"is_private":false,"is_reserved":false,"is_bogon":false}

Formati di Output

Default: JSON per lookup completi, testo semplice per campi singoli. Puoi forzare il formato con ?format= oppure con l'header Accept.

# JSON (default) $ curl mioip.info/api/?format=json # Chiave: valore $ curl mioip.info/api/?format=text # XML $ curl mioip.info/api/?format=xml # CSV (intestazione + dati) $ curl mioip.info/api/?format=csv # Tramite header Accept $ curl -H "Accept: text/xml" mioip.info/api/

IPv4 / IPv6

Forza un protocollo specifico tramite sottodomini DNS (ciascuno risolve solo il record corrispondente) o flag di curl.

# Sottodominio IPv4 (DNS solo record A) $ curl ipv4.mioip.info/api/ # Sottodominio IPv6 (DNS solo record AAAA) $ curl ipv6.mioip.info/api/ # Flag di curl (stesso risultato) $ curl -4 mioip.info/api/ $ curl -6 mioip.info/api/

Rate Limiting

Le richieste sono limitate per IP sorgente. Il superamento del limite restituisce HTTP 429.

Parametro Valore
Frequenza100 richieste / minuto
Burst20 richieste extra
SuperamentoHTTP 429 Too Many Requests

Errori

Tutti gli errori restituiscono JSON con un messaggio descrittivo.

Codice Quando
400Indirizzo IP non valido o parametro mancante
404Nome campo sconosciuto
405Metodo diverso da GET
429Rate limit superato
$ curl mioip.info/api/nonexistent {"error":true,"code":404,"message":"Unknown field: nonexistent. Use /api/ to see all available fields."}