Ip Adresinden Şehir, Ülke, Adres Tespiti

Ip adresinden şehir, ülke, kaba adres tespiti yapan bir Php yazılımı geliştirelim. Ip adresi sorgulaması yapılan form aracılığıyla bu ip adresinin şehrini, ülkesini, enlem ve boylamını Geoplugin veritabanından Json olarak talep edip; gelen bilgileri Google Maps Api’siyle haritada gösterelim. Eğer ziyaretçi bir ip sorgusu göndermemişse, kendi ip’sinin bilgilerini aynı biçimde yansıtalım.

İlk olarak ihtiyacımız olan bir adet Google Maps Api anahtarını, Google’ın geliştirici konsolundan edinelim. Bu anahtara eğer harita kullanıyorsak gereksinim duyacağız.

Bir Php belgesi oluşturarak </head> kısmından hemen önce aşağıdaki Php kodlarını ekleyelim.

Burada, sayfamızı ziyaret eden istemcinin Ip adresini aldık. Eğer Ip sorgulaması gönderilmemişse (Post edilmemişse) istemcinin ip adresini ve bilgilerini elde ettik. Geoplugin.net json apisi ile talepte bulunup; ülke kodu (Örneğin Türkiye için TR), şehir, enlem ve boylam bilgilerini json’dan ayrıştırdık.

Gereksinimimiz olan bilgiler artık elimizde. Şimdi bu bilgileri kullanıcıya yansıtıp Google haritasında gösterelim. Yine </head>’dan önce aşağıdaki Javascript kodunu sayfamıza ekliyoruz.

Büyük harfle belirttiğim bölümü (key=…) Google Maps Api Key’inizle değiştirmeyi unutmayın.

Sayfamızın <body> girişini aşağıdakiyle değiştiriyoruz. Böylece sayfa yüklenirken haritamızda yüklenmiş olacak.

Bu girişten sonra basit bir sorgu formu oluşturarak ziyaretçilerin farklı ip adreslerini de sorgulamasını sağlıyoruz.

Ip bilgilerini ve Ip ile ilişkili bilgileri haritada göstererek projemizi sonlandırıyoruz.

Böylelikle projemiz, demosunu göreceğiniz biçimde bitmiş oldu.

DEMOİNDİR

Sınırlamalar:

Bu uygulama aşılabilir bazı sınırlamalar içerir.

  • Geoplugin.net Ip sorgulama Api’si dakikada 120 sorguyla sınırlanmıştır. Ayda  15 € ödeyerek Premium üye olup bu sınırlamayı aşabilirsiniz.
  • Google Maps Api’si 2016 Mart için, günde 25.000 ücretsiz kullanım hakkı sunuyor. Bundan daha çok sorguya gereksinim duyuyorsanız her ek 1.000 gösterim için 0.50 $ ödeyip limitinizi 1.000.0000’a kadar artırabilirsiniz.