İp Adresini Kullanarak Hava Durumu Botu Hazırlama

Hava durumu botu hazırlamak standartlaşan bir bot türü haline geldi artık. Bu standartları yıkarak, hava durumu botuna farklı bir çalışma mekanizması getirmemiz gerekiyor. Peki, bunu nasıl yapabiliriz? Mesela, ziyaretçinin yaşadığı şehir bilgisini alarak, yaşamış olduğu şehre ait hava durum bilgilerini gösterebiliriz. Bu işlemi gerçekleştirmek için bir önceki derse göz atabilirsiniz. BKZ:

Dinamik bir hava durumu botu hazırlamak için bazı adımlar vardır. Bu adımlara algoritmada diyebiliriz. Öncelikle yapmamız gerekenleri listelemek, ardından da uygulamak gerekir. Gelin öncelikle nelerin yapılması gerektiğini bir listeleyelim.

1 - Ziyaretçinin İP Adresini Öğren.
2 - Ziyaretçinin İP Adresini Kullanarak Şehir Bilgisine Ulaş
3 - Şehir Bilgisine Göre Hava Durumu Sitesinden Verilere Ulaş
4 - Ziyaretçiye Bottan Gelen Bilgileri Sun.

Bu adımları izleyerek, dinamik bir hava durumu hazırlamış olacağız. Yukarıdaki listede yer alan adımları uygulayarak botu hazırlayalım.

1 - Ziyaretçinin İP Adresini Öğren

Php'de bir ziyaretçinin İP adresini öğrenmek çok kolaydır. Bunun için aşağıdaki kodu yazmamız yeterli olacaktır.

<?php 
$ip = @$_REQUEST['REMOTE_ADDR'];
?>

Ziyaretçinin İP adresini böylelikle almış oluyoruz. Şimdi 2. Adıma geçerek, işlemlere devam edelim.

2 - Ziyaretçinin İP Adresini Kullanarak Şehir Bilgisine Ulaş

Ziyaretçinin şehir bilgisine ulaşma işlemini bir önceki derste işlemiştik. Konu hakkında detaylı bilgi için, makalesine göz atabilirsiniz. Bu derste yer alan şehir bilgisine ulaşma bilgisini direk olarak alıyoruz.

<?php
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));
$Sehir = $query["city"]; // Ziyaretçinin Şehir bilgisi
?>

Yukarıdaki kod bloğu ile ziyaretçinin bağlantı kurmuş olduğu şehir bilgilerine ulaşmış oluyoruz. Şimdi ise, şehir bilgisini kullanarak hava durumu bilgilerini alalım.

3 - Şehir Bilgisine Göre Hava Durumu Sitesinden Verilere Ulaş

Ziyaretçinin, şehir bilgisini aldıktan sonra, havadurumu.com.tr adresine bağlanarak gerekli bilgileri alıyoruz. Bağlanma işlemini cURL yardımı ile yapacağız. Bunun için ilk önce bir fonksiyon oluşturuyoruz. Bu fonksiyon hazırlamış olduğumuz URL'e erişmemizi sağlayacak.

<?php
Function Baglan($a){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $a);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$isle = curl_exec($ch);
curl_close($ch);
return $isle;
}
?>

Şimdiyse Baglan fonksiyonunu kullanarak, hazırlamış olduğumuz URL'e erişim sağlıyoruz.

<?php
$Link = Baglan("http://havadurumu.com.tr/havadurumu/".$Sehir."-hava-durumu");
preg_match('@<span class="cur_temp">\s+(.*?)</span>@si', $Link, $HavaDerece);
preg_match('@<img src="/icons/(.*?)".*?alt="(.*?)" title=".*?">@si', $Link, $Detaylar);
?>

Ziyaretçinin şehir bilgisine göre düzenlemiş olduğumuz URL yapısına bağlanarak, gerekli bilgileri preg_match ile alıyoruz.

4 - Ziyaretçiye Bottan Gelen Bilgileri Sun.

Bilgileri başarılı bir şekilde aldığımıza göre, bu verileri ziyaretçiye sunmak zor olamayacaktır. Örnek olarak göstermek için, bir HTML/CSS yapısı oluşturuyorum. Bunu sisteminize göre gerekli yerlere uygulamanız daha iyi olacaktır.

<style type="text/css">
#Hava{width:200px;height:110px;padding:5px;border:1px solid #ccc;}
#Hava div{text-align:center;padding:5px;background:#eee;font-weight:bold}
#Hava img{width:80px;height:80px;margin-top:5px;float:left}
#Hava span.Derece{margin-top:12px;font-size:20px;text-align:center;display:block}
#Hava span.Durum{font-size:16px;text-align:center;display:block}
</style>

<div id="Hava">
<div><?=$Sehir?></div>
<img src="http://havadurumu.com.tr/icons/<?=$Detaylar["1"]?>" />
<span class="Derece"><?=$HavaDerece["1"]?></span>
<span class="Durum"><?=$Detaylar["2"]?></span>
</div>

Bu küçük uygulama sayesinde, ziyaretçilerin bilgilerini alarak dinamik bir hava durumu botu oluşturmuş oluyoruz. Böylelikle, sayfamızı ziyaret eden kişilerin özel hissetmesini sağlamış oluyoruz.
- 25.02.2015 / 10:56:18 10

Sosyal Medya Paylaşım Alanı

Bunlarda İlginizi Çekebilir

7:18 Php Dersleri
6:47 Php Dersleri

Parse_str Functionunun Kullanımı

Kategori: Php Dersleri | 03.05.2013
Css Dersleri

Css ile Radio Butonlarını Şekillendirme

Kategori: Css Dersleri | 24.08.2013
14:10 Php Dersleri

Php ile Dosya İçeriğine Yazı Yazma | Fwrite

Kategori: Php Dersleri | 03.05.2013
Genel Makaleler

Google Chrome'da Sesli Arama Yapmak | Ok Google

Kategori: Genel Makaleler | 27.11.2013

Yorum Listesi (4) # YorumYap

  • Zitro (17.03.2015 - 11:57:37)
    Adam yapmis ellerin dert görmesin!
  • tekno (20.07.2015 - 18:27:45)
    abicim ya ben yaptımda ben niğdede oturuyorum şehir olarakta bursa gösterdi her hangi bir ip değiştirme programı kullanmıyorum
  • İsmail (22.11.2015 - 22:04:23)
    Hocam sorunsuz çalışıyo fakat otel internetin den bağlanmak istediğimde hata alıyorum hata nedeni
    Sehiri yazdırınca buldum istabul(kartal) yazıyor ne yapmalıyız
  • Mehmet (15.01.2017 - 22:14:30)
    Adamın dibisin abi :) teşekkürlerrr :)

Hadi Sende Yorum Yap!

Yorum Gönderilmiştir. Onaylandıktan Sonra Mesajınız Yayınlanacaktır.