خیلی اوقات پیش می آید که بخواهیم در یک برنامه بررسی کنیم که دسترسی به اینترنت وجود دارد یا خیر. یکی از روش ها که شاید خیلی از برنامه نویس ها از آن استفاده می کنند ارسال درخواستی به یک وب سایت اینترنتی است که در صورت دریافت پاسخ، دسترسی به اینترنت وجود خواهد داشت:
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
برای یادگیری و آموزش سی شارپ ( آموزش زبان برنامه نویسی سی شارپ ) رایگان به این لینک بروید
private static bool IsConnectedtoInternet()
{
bool IsConnectedtoInternet;
try
{
using (WebClient client = new WebClient())
{
using (client.OpenRead("http://tosinso.com"))
{
IsConnectedtoInternet = true;
}
}
}
catch
{
IsConnectedtoInternet = false;
}
return IsConnectedtoInternet;
}
اما فرض کنید سایت ITPRO، خدای نکرده در دسترس نبود، در این لحظه راهکار چیست؟ راه دیگر استفاده از توابع COM است که در خود Windows تعریف شده. نام این تابع InternetGetConnectedState می باشد که در فایل wininet.dll تعریف شده و می توان بوسیله dllimport آن را در برنامه استفاده کرد:
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
private static bool IsConnectedtoInternet()
{
int description;
return InternetGetConnectedState(out description, 0);
}
مزیت این روش، استفاده از مکانیزم خود ویندوز برای بررسی وجود دسترسی به اینترنت بوده و نسبت به روش قبلی قابل اطمینان تر است. امیدوارم این نکته مورد استفاده دوستان قرار بگیرد.