PDA

View Full Version : چک کردن ارتباط با اینترنت



behrad110
دوشنبه 22 شهریور 1389, 14:31 عصر
چطور از طریق کد نویسی میشه فهمید که ارتباط اینترنت برقرار است ؟

salehbagheri
دوشنبه 22 شهریور 1389, 14:57 عصر
از متد زیر استفاده کنید.


My.Computer.Network.IsAvailabe()


البته یه راه دیگه هم هست که اگه به سایتی از طریق همین فضای نام Ping کردید و جواب گرفتید، میتونید یقین کنید که ارتباط برقراره!

behrad110
دوشنبه 22 شهریور 1389, 15:06 عصر
از متد زیر استفاده کنید.


My.Computer.Network.IsAvailabe()


البته یه راه دیگه هم هست که اگه به سایتی از طریق همین فضای نام Ping کردید و جواب گرفتید، میتونید یقین کنید که ارتباط برقراره!

راه ping رو امتحان کردم اما من میخوام مطمئن بشم که به یک وب سرویس وصل هستم یا نه که همش پیغام خطا میده اما وقتی به گوگل ping میکنم جواب درست میده . شما میدونید علت چیه؟
راستی این کدی که دادید برای چه namespace ای هستش؟

ostovarit
دوشنبه 22 شهریور 1389, 15:16 عصر
چطور از طریق کد نویسی میشه فهمید که ارتباط اینترنت برقرار است ؟

یک کلاس بساز کد زیر رو بنویس توش ... هر جا خواستی متد IsConnectedToInternet رو فراخوانی کن ...



[Flags]
enum ConnectionState : int
{
INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x10, INTERNET_CONNECTION_OFFLINE = 0x20, INTERNET_CONNECTION_CONFIGURED = 0x40
}

public class Internet
{
[DllImport("wininet.dll", CharSet = CharSet.Auto)]
static extern bool InternetGetConnectedState(ref ConnectionState lpdwFlags, int dwReserved);

public Internet()
{

}

public static bool IsConnectedToInternet()
{
ConnectionState Description = 0;
bool conn = InternetGetConnectedState(ref Description, 0);
return conn;
}
}

salehbagheri
دوشنبه 22 شهریور 1389, 15:52 عصر
راستی این کدی که دادید برای چه namespace ای هستش؟

یک لحظه فکر کردم تالار VB.NET هست.

کافیه شما فضای نام Microsoft.VisualBasic به پروژه اضافه کنید و به صورت زیر استفاده کنید.


Microsoft.VisualBasic.Devices.Network Ntwk = new Microsoft.VisualBasic.Devices.Network();
if (Ntwk.IsAvailable())
return "Connected";



همش پیغام خطا میده
پس شما قصدتون چیز دیگه ای هست! شما که لازم نیست به اون فایل یا WebService پینگ کنید! کافیه به Url همون سایت Ping کنید در صورت اتصال کار خودتون رو انجام بدید.

اما اگه منظورتون اینه که نمیتونید به اون وب سرویس دسترسی داشته باشید یه چیز دیگه است. احتمالا به Permission ها ربط داره!

r00tkit
دوشنبه 22 شهریور 1389, 16:02 عصر
از متد زیر استفاده کنید.


My.Computer.Network.IsAvailabe()


البته یه راه دیگه هم هست که اگه به سایتی از طریق همین فضای نام Ping کردید و جواب گرفتید، میتونید یقین کنید که ارتباط برقراره!

سلام

Network.IsAvailable =
Check whether a computer is connected to a network


تست می کنه ایا به network وصل هستید یا نه


زمانی که به اینترنت وصل نیستید ولی به شبکه ای وصل هستد جواب رو نگاه کنید


علاوه بر روش p/invoke بالا :



if(NetworkListManager.IsConnectedToInternet)
Console.WriteLine("Connected To Internet");

HH2BN1990
دوشنبه 22 شهریور 1389, 22:10 عصر
البته می تونیداز این کد هم استفاده کنید







using System.Runtime.InteropServices;

[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState(out int Description, int ReservedValue);
bool IsConnectedToInternet()
{
int Desc;
return InternetGetConnectedState(out Desc, 0);
}





فقط کافیه متد ()IsConnectedToInternet رو صدا بزنید

r00tkit
سه شنبه 23 شهریور 1389, 18:04 عصر
دوست من اقای HH2BN1990 فکر کنم این تاپیک رو کامل نخوندید پست شماره 4 رو یه بار دیگه نگاه کنید ./

HH2BN1990
سه شنبه 23 شهریور 1389, 19:28 عصر
بله شما درست می گید من بعد از اینکه پست رو زدم متوجه شدم ولی چون دیدم کدم ساده تر هستش دیگه پستمو حذف نکردم