C# checking Internet connection
c#, networking
Solution
a little shorter version:
public static bool CheckForInternetConnection()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
Another option is:
Ping myPing = new Ping();
String host = "google.com";
byte[] buffer = new byte[32];
int timeout = 1000;
PingOptions pingOptions = new PingOptions();
PingReply reply = myPing.Send(host, timeout, buffer, pingOptions);
if (reply.Status == IPStatus.Success) {
// presumably online
}
You can find a broader discussion here
Problem
Can you please tell me if there is a way to check if there is a internet connection in my computer when my C# program is running. For a simple example, if internet is working, I would output a message box saying `Internet is available`. else I would output a message saying, `Internet is unavailable`. Without using the library function to see if network is available (since this doesn't check internet connectivity) ``` System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() ``` Or without opening a webpage and seeing if it's return data ``` using (WebClient client = new WebClient()) htmlCode = client.DownloadString("http://google.com"); ``` Because both of these above methods don't suit my needs.