İçeriğe geç

Ping Atma

Ping, kullandığınız bilgisayar ile uzak sunucu arasındaki bir veri demetinin iletilmesi veya kısaca haberleşme işlemidir diyebiliriz. Aslında bunu ben hal hatır sormaya benzetiyorum. Hani uzun zamandır karşılaşmamışsınız ve karşılaştığınız zaman; “Nabıyon la bebe! Yaşıyon mu?” (Ankara ağzıyla) gibisinden cümleler havada uçuşur. İşte; ping atma da böyledir. Uzaktaki sunucunun aktif olup olmadığını kontrol eder.

Ping atma işlemini, Terminal (CMD veya Console vs gibi) ekranından da yapabilirsiniz. Lakin bu yazıda değinmek istediğim; PHP ile ping gönderme işlemidir. 

PHP ile ping gönderme işlemi çok basittir. O yüzden lafı çok fazla uzatmadan hemen kodlarımızı vermek istiyorum. Daha sonra da; kod satırlarımız üzerinde konuşalım.

<?php

$curl = curl_init('https://emrecanoztas.com');  
curl_setopt($curl, CURLOPT_TIMEOUT, 5);  
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
curl_exec($curl);
$result = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

unset($curl);

if ($result >= 200 && $result < 300) {
    echo('Ping atma işlemi başarılı!');
} else {
    echo('Ping atma işlemi başarışız!');
}

Kodlarımız yukarıdaki gibidir. Şimdi kod satırlarımızdan bahsedelim.

Öncelikli olarak; cURL’u aktif ettik ve ulaşmak istediğimiz URL’in https://emrecanoztas.com olduğunu bildirdik. Daha sonrasında ise; CURLOPT_TIMEOUT ve CURLOPT_CONNECTTIMEOUT değerlerini 5 sn olarak belirledik. Yani; cURL’den 5 sn içerisinde yanıt vermesini beklediğimizi söyledik. CURLOPT_RETURNTRANSFER ise; istek yapılan adresten aktarılan değeri bir dizge şeklinde alacağımızı söyledik. cURL yapılandırılmasından sonra cURL’u çalıştırdık.

$result = curl_getinfo($curl, CURLINFO_HTTP_CODE);

Satırı ise; cURL ile istek gönderdiğimiz adresin, HTTP kodunu bize verir. Yani $result değişkeninde artık istek yapılan sayfasının HTTP kodu bulunmaktadır.

Detaylı olarak buradan HTTP kodlarını inceleyebilirsiniz.

Son olarakta; cURL’u kapattık ve cURL nesnesini hafızadan sildik.

$result değişkeninde bulunan HTTP kodunu if…else ile kontrol ettik. Sonuç olarak; belirtilen adrese istek yaptık, adres aktif ise ping başarıyla iletilecektir ve aktif değilse iletilemeyecektir.

PHP ile ping atma işlemi şu açıdan önemlidir. Örneğin; elinizde belki 10 belki 100 belki de 1000 adet web sitesi olabilir. Her gün bu web sitelerinin durumlarını kontrol etmek isteyebilirsiniz. Bu web sitelerini tek tek gezerek vakit kaybetmektense; yukarıdaki basit kod parçasıyla bu işlemi otomatize edebilirsiniz. Bu sadece bir senaryo. Pek tabii bir çok sorunu çözmek için de kullanılabilir.

PHP ile ping atma işlemini yerine getirmek için bir betik hazırladım. Bu betiği buradaki github adresimden indirebilirsiniz.

Saygı ve muhabbetle!..

Bu içeriği paylaşmak ister misiniz?

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Buradaki içeriklerin tümü kamu malıdır. Kullanılması ve paylaşılması özgürdür.