آنلاین بودن یک سایت با C++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

آنلاین بودن یک سایت با C++

0 امتیاز
سلام من میخوام با C++ یه کدی بنویسم که بررسی کنه بینه سایتی که وارد میکنیم آنلاین هست یا نه ولی نمیدونم چطوری باید یک رکوئست به سمت سایت مورد نظر مثلا google.com ارسال کنم کسی هست بتونه کمک کنه؟
سوال شده تیر 15, 1402  بوسیله ی رسول   1 1 1

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

سلام! برای بررسی اینکه آیا یک سایت آنلاین است یا نه، می‌توانید از تابع InternetCheckConnection در ویندوز استفاده کنید. این تابع در کتابخانه wininet.h قرار دارد و با فراخوانی آن می‌توانید بررسی کنید که آیا اتصال به یک سایت خاص مثل google.com ممکن است یا نه . به عنوان مثال:

#include <iostream>
#include <windows.h>
#include <wininet.h>

using namespace std;

int main() {
    if (InternetCheckConnection(L"http://www.google.com", FLAG_ICC_FORCE_CONNECTION, 0)) {
        cout << "connected to internet";
    }
    return 0;
}

یک راه حل کراس پلتفرم هم استفاده از curl هستش:

#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl_global_init(CURL_GLOBAL_DEFAULT);

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");

    /* Perform the request, res will get the return code */ 
    res = curl_easy_perform(curl);
    /* for Check errors */ 
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }

  curl_global_cleanup();

  return 0;
}
این کد یک درخواست HTTP به google.com ارسال می‌کند. اگر سایت در دسترس باشد، curl_easy_perform() با موفقیت اجرا می‌شود و در غیر این صورت، خطای مناسب را برمی‌گرداند.
 
پاسخ داده شده تیر 15, 1402 بوسیله ی ققنوس (امتیاز 151)   4 20 29
انتخاب شد شهریور 8, 1402 بوسیله ی farnoosh
...