C++ Programlama ile web sitesine ping yollayalım
Hedef olarak ana bilgisayarın, ana bilgisayar adı veya IP adresi olan tek bir bağımsız değişken ana bilgisayarını alan ping işlevi tanımlanır.
İşlev, ana bilgisayarda ping komutunu çalıştırmak için yürütülecek komutu saklayan bir dize komutu oluşturarak başlar.
sprintf(komut, "ping -n 1 %s", sunucu); bu satır yürütülecek komutla bir dize oluşturur, bu durumda ping -n 1 ardından ana bilgisayar gelir.
Sistem işlevi daha sonra sistem kabuğundaki komut dizesini yürütmek için kullanılır.
int sonuç = sistem(komut); bu satır, komutu kabuk üzerinde çalıştırır ve yürütmenin sonucunu döndürür.
Sistem çağrısının sonucu kontrol edilir ve ping komutu başarılı olursa 0, başarısız olursa herhangi bir değer döndürür. İşlev, komut başarılı olursa doğru, aksi takdirde yanlış döndürür.
Ana işlevde, bir dize ana bilgisayar adı tanımlanır ve bu durumda "yazilimadasi.com" şeklinde bir değer atanır.
Ping işlevi, ana bilgisayar adıyla bir argüman olarak çağrılır ve dönüş değeri, yanıt değişkenine atanır.
Daha sonra yanıt değişkeninin basit bir kontrolü yapılır, eğer doğruysa, hostname is up mesajını yazdırır! aksi takdirde, değer yanlışsa, ana bilgisayar adının kapalı olduğunu yazdırır!
Komut dosyası, belirtilen ana bilgisayar adına veya IP adresine tek bir ICMP yankı istek paketi (ping paketi) gönderir ve bir yanıt bekler, yanıtı alırsa, ana bilgisayarın açık olduğu ve komut dosyasının True döndürdüğü anlamına gelir, aksi takdirde bu şu anlama gelir: host çalışmıyor ve betik False değerini döndürüyor.
Bir ana bilgisayarın çalışıp çalışmadığını kontrol etmenin basit bir yoludur ve uzak sunucuların kullanılabilirliğini kontrol etmenin veya ağ bağlantı sorunlarını gidermenin yararlı bir yolu olabilir.
Kaynak kodumuz :
Kod: Tümünü seç
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
bool ping(const char* host) {
char command[100];
sprintf(command, "ping -n 1 %s", host);
int result = system(command);
return result == 0;
}
int main() {
std::string hostname = "yazilimadasi.com";
bool response = ping(hostname.c_str());
if (response) {
std::cout << hostname << " is up!" << std::endl;
}
else {
std::cout << hostname << " is down!" << std::endl;
}
return 0;
}
derlenmiş hali ekran görüntüsü