Ip Adresinden Coğrafi Yer Bilgisi Alma

 bcakir
 9 Eylül 2011
 Php

Merhaba arkadaşlar bu yazımda Php ile IpinfoDB sınıfını kullanarak ip adresinden coğrafi bilgilerin nasıl alındığını anlatacağım. Bu uygulamayı kullanabilmeniz için ilk önce bedava olarak Ip Location Key almanız gerekiyor. Gerekli yerleri doldurup gönderince mail adresinize Api Key gelecek bunu uygulamamızda uygun yere koyacaksınız. Daha sonra da kullanacağımız IPinfoDB sınıfının zip dosyasını buradan indiriyoruz. Zip dosyası içerisinden çıkarıp uygulamamızla aynı klasör içerisine koyuyoruz. Api Key alma ve IpinfoDB sınıfını indirme işlemini yaptıysak artık uygulamamızı geliştirmeye geçebiliriz.

<?php
//Uygulama sınıfını yüklüyoruz
include('ip2locationlite.class.php');

//Api değerimizi giriyoruz
$ipLite = new ip2location_lite;
$ipLite->setKey('api değerinizi girin');

//Yer bilgisi alma ve hata kontrolü
$locations = $ipLite->getCity($_SERVER['REMOTE_ADDR']);
$errors = $ipLite->getError();

//Bilgilerin ekrana İngilizce olarak yazılması
echo "<strong>Sonuçlar EN</strong><br />";
if (!empty($locations) && is_array($locations)){
    foreach ($locations as $field => $val) {
        echo $field . ' : ' . $val . "<br />";
    }
}

//Bilgilerin ekrana Türkçe olarak yazılması
echo "<br /><strong>Sonuçlar TR</strong><br />";
if (!empty($locations) && is_array($locations)){
    echo "İp Adresi: ".$locations['ipAddress']."<br />";
    echo "Ülke Kodu: ".$locations['countryCode']."<br />";
    echo "Ülke İsmi: ".$locations['countryName']."<br />";
    echo "Bölge İsmi: ".$locations['regionName']."<br />";
    echo "Şehir İsmi: ".$locations['cityName']."<br />";
    echo "Enlem: ".$locations['latitude']."<br />";
    echo "Boylam: ".$locations['longitude']."<br />";
    echo "Zaman Dilimi: ".$locations['timeZone']."<br />";
}

//Varsa hata bildirimi gösterme
if (!empty($errors) && is_array($errors)){
    echo "<br /><strong>Bütün Hatalar:</strong><br />";
    foreach ($errors as $error) {
        echo var_dump($error) . "<br />";
    }
}
?>

Yukarıda uygulamamızı yaptık. Coğrafi bilgileri aldığımız veritabanı yabancı  kaynaklı olduğundan dönen bilgileri Türkçeye çevirmemiz gerekiyor. Uygulamadan dönen verileri İngilizce olarak ve Türkçe çevirisini de ekrana yazdırdım. Uygulamanın veritabanı Türkiye için çok yeterli değil. Ayrıca bu uygulamayı isterseniz uzak siteden veri alma konusunda anlattığım şekilde de yapabilirsiniz. Eğer bu şekilde yapmak istiyorsanız da aşağıdaki şekilde linki gönderip, geriye dönen sonucu ayıklamanız gerekiyor.

$ip_adresi=$_SERVER['REMOTE_ADDR'];
$veri="http://ipinfodb.com/ip_locator.php?ip=".$ip_adresi;
$adres = @file_get_contents($veri);

Uzak siteye ip adresi gönderme işlemini yukarıda gösterilen şekilde yapıyorsunuz. Uygulamadan dönen verileri ise uzak siteden veri alma konusunda anlattığım şekilde, uygun yerlerinden parçalayarak alınca coğrafi yer bilgisini elde etmiş oluyorsunuz. Hangi tarz uygulamayı isterseniz onu seçebilirsiniz. Uygulamamızın açıklamasını yaparak bu yazımızın da sonuna gelmiş olduk. Gelecek uygulama yazılarında görüşmek dileğiyle.

 2.001 Okunma

Bu yazıya 3 yorum yapılmış.

  1. hocam şimdi biz koordinatları jquery yardımıyla google ile alsak ve ona göre nerde olduğunu ekrana yazdırsak? böyle bir çalışma daha başarılı olabilir. çünkü benim ip adresime göre ankarada olduğum yazıyor ancak niğdedeyim yani yanlışlıklar oluyo..

    • Benim de tarayıcıdan konum bulma konusunda daha önceden yazdığım bir yazı vardı. Fakat bütün tarayıcılar için geçerli bir yöntem değil ve hala bütün tarayıcılar konum bulmayı desteklemiyor. Fakat ilerleyen zamanlarda konum bulma standardı oturacaktır.

  2. Parse error: syntax error, unexpected ‘$ipLite’ (T_VARIABLE) in …\index.php on line 6

    şöyle bir hata alıyor ve çözemedim yardımcı olursanız sevinirim

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Php
Kapat