Come implementare il codice di un servizio di geolocalizzazione su una pagina php?

di il
2 risposte

Come implementare il codice di un servizio di geolocalizzazione su una pagina php?

Un saluto a tutti.

Espongo il mio problema: vorrei implementare un servizio di geolocalizzazione, al quale mi sono registrato, su una pagina in php.
Questa pagina già contiene un "vecchio" servizio di geolocalizzazione (ip-api.com), che vorrei sostituire con quello nuovo perchè più completo e preciso.

Questo è il codice del nuovo servizio:

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://api.ipdata.co?api-key=mia_chiav");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Accept: application/json"
));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

(Maggiori informazioni alla pagina: )

Qui sotto ho riportato il codice della mia pagina in php in cui è inserito il "vecchio" servizio di geolocalizzazione che vorrei sostituire con il nuovo:

<?php
$ip = $_SERVER['REMOTE_ADDR']; // the IP address to query
$query = @unserialize(file_get_contents('));
if($query && $query['status'] != 'success') {

$oggetto = $ip." - ".$data." ATTENZIONE: il servizio ip-api.com NON FUNZIONA!";
$testo = "ATTENZIONE: il servizio ip-api.com non rileva nulla per questo IP. Verificare il corretto funzionamento del servizio ip-api.com";

mail($mail_destinatario, $oggetto, $testo);

header("Location: 98l2HT7.html"); // unable to get location - go to new request page
}

else {

$countryguest = $query['countryCode'];
$regionguest = $query['regionName'];
$cityguest = $query['city'];
$isp_guest = $query['isp'];
$org_guest = $query['org'];
$as_guest = $query['as'];
$mobile_guest = $query['mobile'];
$proxy_guest = $query['proxy'];
...

Non ho molta dimestichezza con i linguaggi di programmazione, potreste aiutarmi e dirmi come devo scrivere il codice del nuovo servizio in questa mia pagina in php, in modo che assegni alle variabili $countryguest, $regionguest, ecc, i dati corrispondenti dei rispettivi campi ?


Grazie.

2 Risposte

  • Re: Come implementare il codice di un servizio di geolocalizzazione su una pagina php?

    Non è molto chiaro come il nuovo servizio prende il parametro "IP" lo prende in modo implicito in base alla chiamata? se fosse così direi che ti basta provare con:

    <?php
    $query = json_decode(file_get_contents("https://api.ipdata.co?api-key=mia_chiav"), true);
    var_dump($query);


    poi in base al nome dei campi che ti restituisce il servizio puoi modificare il resto tenendo la medesima sintassi del vecchio script...

    spero di essermi spiegato
  • Re: Come implementare il codice di un servizio di geolocalizzazione su una pagina php?

    Bene insanus , con il codice da te suggerito sono riuscito nell'impresa.. Adesso però c'è un altro problema: con il codice qui sotto, riesco ad avere i dati che mi interessano, meno quello relativo al campo 'is_eu', che mi restituisce un valore booleano (true o false)...

    Ho cercato di assegnare il valore booleano alla stringa $isEu, ma non prende nessun valore, quindi adesso il problema è: come posso fare per assegnare il valore booleano del campo 'is_eu' (true o false, 1 o 0) alla stringa $isEu?
    <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $query = json_decode(file_get_contents("https://api.ipdata.co/" . $ip . "?api-key=test"), true);
    
    $isEu = $query['is_eu']; // la $query['is_eu'] restituisce un valore booleano (true o false)
    if ($isEu == 'false') echo 'Connessione extraeuropea';
    
    ..
    ..
    ..
    ?>
Devi accedere o registrarti per scrivere nel forum
2 risposte