Php ile IP Adresinden Konum Bulma
Php ile ip adresinden yer tespiti mümkün mü? sorusunun cevabı için bu makaleyi hazırladık. Ücretsiz olarak dağıtılan ufak bir api sayesinde ip adresinin hangi lokasyon’da olduğunu kolaylıkla tespit edebiliyoruz.
Sitenize giren ziyaretçilerin hangi ülkeden, hangi şehirden sayfanıza bağlandığı ve daha fazla detayları nasıl öğrenebileceğinizi anlatacağız. Bunun için ip-api.com bize ücretsiz bir api veriyor. Biz bu apiyi kullanarak işlerimizi kolaylıkla yapabiliriz.
Projenin neresinde kullanabilirim?: Projenizde kişinin ip adresinden konumunu bulup, bu konuma yakın yemek, iş yeri, alışveriş merkezi vs.. gibi projenizde alakalı birşeyler gösterebilirsiniz.
PHP ile IP Adresinden Konum Bulma
Geolocation API’de dökümantasyon bölümünde görüldüğü üzere php, json, xml, csv gibi farklı formatlarda kullanım sağlayabiliyoruz. Ben json olarak size paylaşacağım.
Sorgulatacağınız ip adresini bir değişkene tanımlatıp bunu apiye Curl ile post ettiriyoruz. Şu şekilde,
$ip = "176.xx.xx.xx";
$ch = curl_init('http://ip-api.com/json/'.$ip.'?lang=en');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
));
$result = curl_exec($ch);
Değerler bize object olarak geri dönecektir. Bu değerleri tek tek çekip ekrana yazdıracağım böylelikle, hangi bilgileri aldığımızı görmüş olursunuz.
$data = json_decode($result);
echo "Durum: ".$data->status;
echo " <br> ";
echo "Ülke:".$data->country;
echo " <br> ";
echo "Ülke Kodu:".$data->countryCode;
echo " <br> ";
echo "Şehir:".$data->regionName;
echo " <br> ";
echo "Posta Kodu:".$data->zip;
echo " <br> ";
echo "Saat Dilimi:".$data->timezone;
echo " <br> ";
echo "İnternet Sağlayıcısı:".$data->isp;
echo " <br> ";
echo "Firma Adı:".$data->as;
Sonuç olarak ip adresinden ziyaretçinin yerini, konumunu tespit etmek için bu apiyi kolaylıkla kullanabilirsiniz. Yukardaki kodları çalıştırdığınızda ekrana şu görüntü gelecektir.
Anlamadığınız bir yer varsa yorum yaparak destek alabilirsiniz.
Php ile ip adresinden konum bularak bazı projelerimizde farklı işlemler yaptırabiliriz. Mesela ben son projemde randevu sisteminde, yurt dışından giren ziyaretçilere bu sistemi farklı bir şekilde kullandırıyorum. Burada önemli olan kısım kişinin hangi ülkeden girdiğini Api ile tespit edip ona göre işlem yapmaktır.
Paylaşım için teşekkürler. Güzel ama koordinatlardan harita olmadan yer nasıl bulunur. Örnek enlem:39 boylam:39.1 şehir ismini nasıl buluruz?
Aslında Api dökümantasyonda bunlar zaten yazıyor. Şu şekilde enlem ve boylam alabilirsin.
echo "Latitude:".$data->lat;
echo "Longitude:".$data->lon;
Verdiğiniz fonksiyon localhostta çalışır fakat internet sitenizde sll desteği yok ise çalışmaz
Ne alakası var. Bir çok proje’de kullanıldı ve aktif kullanılıyor 🙂
bunu veri tabanından çekerek kullanabilirmiyiz? sadece şehir ve ülke olarak