Un'altra alternativa sarebbe utilizzare Google Analitycs, tramite google analytics puoi avere moltissime informazioni tra cui la citta di provenienza dell'utente.
In questo caso dovresti aggiungere uno script alla pagina da cui sei certo che tutti gli utenti iniziano(altrimenti dovresti utilizzare lo stesso script in tutte le pagine), guarda su google, è spiegato molto bene come fare.
Così facendo potresti visualizzare la citta di provenienza direttamente da Google Analytics facendo comunque presente all'utente nella politica di privacità che il tuo sito utilizza google anlytics e non verrebbe richiesta alcuna autorizzazione(trovi in rete un sacco di testi già scritti che informato dell'utilizzo di google analytics all'interno del sito). Ti posterei il mio ma penso che non ti serva visto che è scritto in spagnolo.

Ciao