Hoi,

Ik wilde iets doen met het opvragen van de geolocatie van een bezoeker om een soort bezoekerslogboekje voor mezelf bij te kunnen houden.

Nu kwam ik dit tegen:
https://geoiptool.com/api/view/?ip=8.8.8.8


Kan ik in een php script dit aanroepen en dan voor het UIP adres $_SERVER['GEOIP_ADDR'] invullen en dan de uitkomende gegevens gebruiken? En zo ja, hoe dan?

Dit leek me een makkelijker oplossing dan iets met een database op de hostingsserver te zetten en die steeds te moeten updaten.

Alvast bedankt voor jullie gewaardeerde mening.

Jop
Externe API's (al dan wel of geen GeoIP-tool) zijn erg leuk, maar het zorgt ook weer voor vertraging bij het opbouwen van de website.

Dus als je iets inlaadt van een externe webserver. Zorg dat je dit dan via AJAX ophaalt, of anders laat cachen.
@Ward:
Ik heb geolocatie in HTML5 ook even geprobeerd, ik hoef geen kaartje te hebben, maar kan ik ook alleen de "City" als gegevens terug krijgen ipv de coördinaten?

Toevoeging op 05/11/2015 13:30:45:

PS. En kan ik die gegevens in php verder verwerken?

Toevoeging op 05/11/2015 13:32:05:

Jo pla op 05/11/2015 13:20:06

Het werkt en ook ook weer niet met de geoip-tool. Als ik het in de browser op vraag krijg ik dat ik wel een city, maar als ik hetzelfde adres op vraag met de php code dan komt er
["city"]=> NULL ["region_code"]=> NULL ["region_name"]=> string(1) " " ["success"]=> bool(true) ["is_url"]=> bool(false)
terug en lijkt het dat de gegevens van mijn provider opgevraagd worden.

Tja, dan moet je natuurlijk wel de code goed zetten ... Ik krijg wel het goede adres terug.

@Arien:
Inderdaad het is meteen een stuk trager. Maar ja, ik ben geen voetbalfan, maar dat is het enige dat bij mij boven komt als ik "AJAX" hoor. Hoe zou jij het stukje code dan aanpassen zodat het sneller wordt?
AJAX wordt client-side uitgevoerd. Je kan dan een PHP-script maken die de JSON-string van die URL uit elkaar kan pluizen, en op kan slaan in de database.

Dit PHP-script wordt dan aangeroepen via een aanroep met JavaScript en AJAX.
Een voorbeeldje met het jQuery-framework:

 $.ajax({
	url: "demo_test.txt", 
	success: function(result){
        	$("#div1").html(result);
    	}

});

We gaan het allemaal vanavond nog eens bekijken. Dank voor jullie input.
Randy Flujowa op 05/11/2015 12:50:06


Dit kan je gebruiken om de info in je php te verwerken

<?php
$data = file_get_contents('https://geoiptool.com/api/view/?ip=8.8.8.8');
$obj = json_decode($data);

var_dump($obj);
?>

Vraagje: hoe kan ik nu de gegevens uit $obj benaderen? Ik dacht dat het een array zou zijn, maar objecten werken kennelijk iets anders ...
Je kunt met een pijl properties van objecten ophalen, dus als je city wilt hebben doe je gewoon:
<?php
$data = file_get_contents('https://geoiptool.com/api/view/?ip=8.8.8.8');
$obj = json_decode($data);

echo $obj->city;
?>
Dank je. En als ik alles uit wil lezen / printen? Kan dat dan met een

<?
foreach ($obj as $key=>$value)
{
	echo $key.' - '.$value.'<br/>';
}
?>

?
Of je geeft gewoon true als tweede argument van json_decode() en dan heb je een array.
Ow, als array is het makkelijker ... ben niet zo thuis in de objecten ...

Reageren