Stai lavorando su localhost? Provate il seguente codice:
$ipaddress = $_SERVER["REMOTE_ADDR"];
function ip_details($ip) {
$json = file_get_contents("http://ipinfo.io/{$ip}/geo");
$details = json_decode($json); // HERE!!!
return $details;
}
$details = ip_details($ipaddress);
echo $details->ip; // CHANGE TO IP!!!
Se restituisce il tuo IP, tutto è OK, il tuo IP è probabilmente 127.0.0.1
, e questo sito non conosce la posizione, in modo da $details->city
non è impostato. Devi controllare lo if (isset($details->city))
e creare uno script alternativo se la città non è presente.
vedo Hai ancora problemi. Prova a fare qualcosa di simile:
$string = file_get_contents('http://ipinfo.io/8.8.8.8/geo');
var_dump($string);
$ipaddress = $_SERVER["REMOTE_ADDR"];
var_dump($ipaddress);
$string2 = file_get_contents('http://ipinfo.io/'.$ipaddress.'/geo');
var_dump($string2);
E scrivere nei commenti che uno fallito;).
Se solo una parte IP è OK, provate a leggere questo:File_get_contents not working?
E anche eseguire questo codice con il massimo segnalazione degli errori:
error_reporting(-1);
Prima di questa parte del codice.
fonte
2015-01-18 16:32:58
E qual è l'errore? Cosa hai provato? Quali sono i log? Cosa produce var_dump (j $ json)? PS. Grazie per un ottimo portale addrres per il futuro :). –
Ho cercato di echo $ json = file_get_contents ('http://ipinfo.io/8.8.8.8/geo'); ma non c'è nulla che appare - ancora con schermo vuoto. –
Provare: var_dump (file_get_contents ('http://ipinfo.io/8.8.8.8/geo')); Se questo non mostra nulla qualcosa non va bene con la configurazione del server ... Probabilmente blocca (come, e perché?) Ottenere contenuti da IP esterni. Avviso HTTP: // nel mio codice. –