Come geolocalizzare un IP con Python e ip-api: guida completa

Codice Python e output di geolocalizzazione IP in una finestra di terminale su uno sfondo sfocato. Dietro il monitor del PC con tastiera e mouse

Possiamo geolocalizzare un indirizzo IP con Python in modo da ottenere i dati geografici e le informazioni sulla rete di connessione, come il provider internet, la città, la regione e le coordinate geografiche.

I dati provengono dall'API gratuita di ip-api.com, che restituisce la risposta in formato JSON senza richiedere chiavi di autenticazione.
Per iniziare, scarica e installa Python dal sito ufficiale qualora non fosse già installato, spuntando la casella Add Python to PATH durante l'installazione. Poi continua a leggere questa piccola guida.


Installazione della libreria Requests

Per fare le chiamate all'API ci serve la libreria requests. Apri il terminale (o il prompt dei comandi) ed esegui questo comando premendo il tasto Invio:

Prompt dei comandi/Terminale
pip install requests

Se la libreria è già installata, non verrà scaricato nulla. Apparirà il messaggio Requirement already satisfied per requests e per tutte le sue dipendenze, confermandoti che è già pronta all'uso.
Se invece il comando pip non viene riconosciuto dal sistema, prova a usare python -m pip install requests.

Nel caso in cui sia la prima volta che la installi, vedrai la barra di avanzamento del download e, al termine, il messaggio di conferma Successfully installed requests con la lista delle dipendenze scaricate.


Come analizzare la posizione del proprio IP

Il codice che vedi qui sotto fa una richiesta a ip-api.com senza specificare un IP. L'API rileva automaticamente l'indirizzo IP pubblico della macchina da cui parte la chiamata e ti restituisce tutte le informazioni disponibili.

Python
import requests url = "http://ip-api.com/json/?fields=status,message,continent,continentCode,country,countryCode,region,regionName,city,district,zip,lat,lon,timezone,offset,currency,isp,org,as,asname,reverse,mobile,proxy,hosting,query" response = requests.get(url, timeout=5).json() print(response)

Come analizzare la posizione di un indirizzo IP specifico

Per analizzare un indirizzo IP/dominio che non è il nostro, basta inserirlo nella variabile ip_da_verificare all'interno del percorso dell'URL, come nell'esempio.

Python
import requests ip_da_verificare = "149.57.191.0" #Qui devi mettere l'IP da geolocalizzare url = f"http://ip-api.com/json/{ip_da_verificare}?fields=status,message,continent,continentCode,country,countryCode,region,regionName,city,district,zip,lat,lon,timezone,offset,currency,isp,org,as,asname,reverse,mobile,proxy,hosting,query" response = requests.get(url, timeout=5).json() print(response)

Esempio dei dati restituiti

L'output generato dall'API contiene la risposta completa con tutti i dettagli sulla rete e sulla geolocalizzazione dell'IP:

JSON
{ "query": "149.57.191.0" , "status": "success" , "continent": "North America" , "continentCode": "NA" , "country": "United States" , "countryCode": "US" , "region": "NY" , "regionName": "New York" , "city": "New York" , "district": "" , "zip": "" , "lat": 40.7127 , "lon": -74.0059 , "timezone": "America/New_York" , "offset": -14400 , "currency": "USD" , "isp": "LogicWeb Inc" , "org": "LogicWeb Inc" , "as": "AS64286 LogicWeb Inc." , "asname": "LOGICWEB" , "mobile": false , "proxy": true , "hosting": true }

Come usare i codici?

1) Copia i codici in due file di testo (puoi usare Blocco note o un qualsiasi editor di testo) > apri il Prompt dei comandi o il Terminale > digita python e premi Invio. Esempio: C:\Users\TUO-NOME-UTENTE>python

Esempio di chiamata API GET con libreria requests ed output JSON in Python da terminale

2) Incolla il codice accanto a >>> premendo due volte il tasto Invio della tastiera e attendi un'attimo. I dati appariranno subito sotto print(response).


Perché la città può cambiare nei tool di IP Lookup?

La geolocalizzazione tramite IP (Internet Protocol) non è precisa al 100%. I dati di localizzazione vengono stimati utilizzando diversi database di terze parti forniti da provider come IP2Location, MaxMind, IPData, IPinfo e altri.

I tool online come Free IP Geolocation di TantiLink.net (via API ipify) o WhatIsmyIp.com scelgono a quale provider affidarsi. Le differenze dipendono dai tempi di aggiornamento di questi database privati e dal modo in cui gli operatori gestiscono gli indirizzi. Molti provider, soprattutto su rete mobile, usano il CGNAT (Carrier-Grade NAT): un singolo IP pubblico vine condiviso da più utenti collegati a centrali anche molto distanti tra loro. Per questo la città mostrata dal tool è quasi sempre quella della centrale dell'operatore, non la tua.

IP pubblico, privato e limiti di precisione

L'IP privato identifica i dispositivi della rete domestica o aziendale e non è visibile su internet. L'IP pubblico è quello che il provider di servizi internet assegna alla rete, è visibile all'esterno, ed è l'unico analizzato dai tool. Le coordinate restituite da ip-api.com indicano un punto al centro del comune associato, non la via o il numero civico in cui ti trovi.

Per trovare la posizione reale serve il consenso dell'utente tramite le Geolocation API del browser o dello smartphone. Solo questo sistema, autorizzato via pop-up, usa il GPS, i ripetitori telefonici e il Wi-Fi per calcolare la posizione esatta o più vicina a quella reale.

Per oggi è tutto. Se hai trovato utile la guida o se hai qualche dubbio, lascia un commento qui sotto.

Potrebbe interessarti anche:
➡️ Gestire smartphone Android direttamente dal PC con Python e ADB
➡️ Riparare Internet dal Prompt dei comandi: guida completa per Windows
➡️ Ping ripetuti da Prompt con log per testare la linea Internet
➡️ Errore DNS_PROBE_FINISHED_NXDOMAIN: cos'è, cause e soluzioni
➡️ La tua VPN è veramente sicura? Verifica eventuali perdite DNS
➡️ Bot Telegram: cosa sono, come aggiungerli, come crearne uno e quali sono i migliori
➡️ Tutti i comandi CMD per categoria: da MS-DOS a Windows 11

Nessun commento: