PDA

View Full Version : سوال: تست اتصال به اینترنت



rezarko
شنبه 04 شهریور 1391, 22:26 عصر
سلام . چه طوری میشه تشخیص داد که ایا سیستم به اینترنت وصل هست یا نه؟
ممنون

hamedre81
شنبه 04 شهریور 1391, 22:33 عصر
سلام
ابتدا رفرنس Microsoft.VisualBasic را به برنامه اضافه کنید.



Microsoft.VisualBasic.Devices.Network AVL = new Microsoft.VisualBasic.Devices.Network();
NETAVL = AVL.IsAvailable;

switch (NETAVL)
{
case true:
MessageBox.Show("Internet Is Available");
break;
case false:
MessageBox.Show("Internet Is Not Available");
break;
}

ehsan7007
شنبه 04 شهریور 1391, 22:37 عصر
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);



bool IsConnectedToInternet()
{
bool a;
int Desc;
a = InternetGetConnectedState(out Desc, 0);
return a;
}


private void button1_Click(object sender, EventArgs e)
{
if (IsConnectedToInternet() == true) label1.Text = "شما به اینترنت متصل هستید";
if (IsConnectedToInternet() == false ) label1.Text = "شما به اینترنت متصل نیستید!!!";
}

ehsan7007
شنبه 04 شهریور 1391, 22:47 عصر
یادم رفت ، اینا روهم اضافه کن.:لبخند:
using System.Runtime.InteropServices;

[DllImport("wininet.dll")]

AmirGhasemi
یک شنبه 05 شهریور 1391, 15:07 عصر
سلام بر مردان خدا
اقا ما عين كدهاي سي شارپ بالا را نوشتيم هيچ خبري نشد!!!!!!!!!! ارور زير را ميده:
Unable to find an entry point named 'InternetGetConnectionSatate' in DLL 'wininet.dll'.

ehsan7007
یک شنبه 05 شهریور 1391, 15:11 عصر
کدوم کد ها رو نوشتی؟
من یا دوست عزیز جناب hamedre81 ؟

ehsan7007
یک شنبه 05 شهریور 1391, 15:17 عصر
خودم الان تست کردم ، درست بود.

شاید اشتباه نوستی ، یه نگاه بنداز :


91879

AmirGhasemi
یک شنبه 05 شهریور 1391, 15:56 عصر
قسم مي خورم كه كدهام عين كد شما بود اما جواب نمي داد اما كد شما را كه عينا كپي كردم جواب داد
دستت شفاست احسان جان

hamidmahjoob
جمعه 12 اردیبهشت 1393, 16:22 عصر
واقعاً تشکر فقط کمی در مورد نحوه کارش توضیح میدی مثلاً

[*=left][DllImport("wininet.dll")]

تشکر فراوان

omid nasri
جمعه 12 اردیبهشت 1393, 17:16 عصر
همیشه لازم نیست ببینید دیگران چگونه کد نویسی می کنند ، می تونید خودتون روش های جدید کشف کنید :

روش من اینه که مثل اب خوردن می مونه :

من در اینجا گفتم این رشته رو برگردون در صورتی که نتونستی بر گردونه پس حتما اینترنت وصل نیست. . .
using System.Net;

namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
try
{
WebClient web = new WebClient();
web.DownloadString("http://err0r.ir");
MessageBox.Show("Your system is connect to the internet");
}
catch
{
MessageBox.Show("Error : \nYour system not connect to the internet");
}
}
}
}

NASA's Spaceman
جمعه 12 اردیبهشت 1393, 19:41 عصر
کد بالا دیر جواب میده
بفرما این سریع جواب میده سوالی بود در خدمتم
118557
با سپاس Spaceman

Mahmoud.Afrad
جمعه 12 اردیبهشت 1393, 20:11 عصر
همیشه لازم نیست ببینید دیگران چگونه کد نویسی می کنند ، می تونید خودتون روش های جدید کشف کنید :

روش من اینه که مثل اب خوردن می مونه :

من در اینجا گفتم این رشته رو برگردون در صورتی که نتونستی بر گردونه پس حتما اینترنت وصل نیست. . .
using System.Net;

namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
try
{
WebClient web = new WebClient();
web.DownloadString("http://err0r.ir");
MessageBox.Show("Your system is connect to the internet");
}
catch
{
MessageBox.Show("Error : \nYour system not connect to the internet");
}
}
}
}


کد بالا دیر جواب میده
بفرما این سریع جواب میده سوالی بود در خدمتم
118557
با سپاس Spaceman

باید هم دیر جواب بده. در این کد سورس html یک آدرس دریافت میشه که برای چک کردن اتصال اصلا منطقی نیست. در ثانی اگر اون آدرس دیگه در دسترس نباشه تکلیف چیه؟
بهتره از امکاناتی که خود سیستم عامل در قالب API در اختیار میزاره استفاده کنید مثل کدی که ehsan7007 (http://barnamenevis.org/member.php?260879-ehsan7007) قرار داده.

davidrobert
چهارشنبه 28 شهریور 1397, 10:11 صبح
سلام خوبی این کد بدردت میخوره و کار میکنه
اول یه کلاس ایجاد کن و این دستور داخلش قرار بده و کلاست رو عمومی کن

public bool checkInternetCon()
{
try
{
using (var client = new WebClient())
using (client.OpenRead("https://www.google.com/"))
{
return true;
}
}
catch
{
return false;
}
}

حالا برای استفاده کردن به این صورت عمل کنید.
کلاس رو از بسازید و صداش کنید
به این صورت کلاس صدا کنید.

Cls_NeedCode needCode = new Cls_NeedCode();


و در هرجا نیاز داشتید دستور بررسی اینترنت رو صدا کنید.

if (needCode.checkInternetCon())
{
//به معنی اینکه به اینترنت وصلی کارها برای ارتباط داری انجام بده.
}
else if (!needCode.checkInternetCon())
{
//کارهای که به اینترنت وصل نیستی انجام بده
}


من تمام اون روش تست کردم چون اگه نت داشته باشه ولی گوگل بالا نیاد پس سیستم دوچار قحطی موقت هستش ولی تو اون روش ها نشان نمیده ولی در این روش نشان میده چون میخواستم با نرم افزارم پیامک بفرستم این روش نوشتم بدون مشکل جواب داد.

NasimBamdad
جمعه 30 شهریور 1397, 17:55 عصر
سلام
ابتدا رفرنس Microsoft.VisualBasic را به برنامه اضافه کنید.



Microsoft.VisualBasic.Devices.Network AVL = new Microsoft.VisualBasic.Devices.Network();
NETAVL = AVL.IsAvailable;

switch (NETAVL)
{
case true:
MessageBox.Show("Internet Is Available");
break;
case false:
MessageBox.Show("Internet Is Not Available");
break;
}




برای من کار نکرد ، در هر شرایط میزنه Internet Available

ahmadreza517
شنبه 31 شهریور 1397, 14:50 عصر
سلام





class Program
{
static void Main(string[] args)
{
if(CheckInternetConnection())
Console.WriteLine("Internet var");
else Console.WriteLine("Internet yok");
Console.ReadLine();
}
public static bool CheckInternetConnection()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
}

NasimBamdad
یک شنبه 01 مهر 1397, 06:57 صبح
سلام





class Program
{
static void Main(string[] args)
{
if(CheckInternetConnection())
Console.WriteLine("Internet var");
else Console.WriteLine("Internet yok");
Console.ReadLine();
}
public static bool CheckInternetConnection()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
}





خوشتیپ پست شماره 12 رو بخون .

cmsdqq2
دوشنبه 02 مهر 1397, 03:18 صبح
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);



bool IsConnectedToInternet()
{
bool a;
int Desc;
a = InternetGetConnectedState(out Desc, 0);
return a;
}


private void button1_Click(object sender, EventArgs e)
{
if (IsConnectedToInternet() == true) label1.Text = "شما به اینترنت متصل هستید";
if (IsConnectedToInternet() == false ) label1.Text = "شما به اینترنت متصل نیستید!!!";
}



دست همگی درد نکنه اما این روش شاید منطقی به نظر بیاد ولی خطا داره و دارای اِشکال

اشکال چی هست؟

شما کافیه اتصالتون به صورت limit باشه؛ توی این روش باز هم شما رو به متصل فرض میکنه.


این اتفاقی بود که سالیان پیش باهاش مواجه شدم و در نهایت تصمیم به استفاده از روش ping گرفتم.

یک ping google راهکار منه