Recently , there was a situation where we had to check for network availability , following are the ways we achieved it:
Way 1:
Here I am using the In-built method GetIsNetworkAvailable.
The method GetIsNetworkAvailable will considered a network to be connected if the network interface is up.
For this to work your network should not be a tunnel or loopback interface.
You can get more info on tunnel/loopback interface here.
if (System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
MessageBox.Show("Hi");
else
MessageBox.Show("Bye")
Way 2:
You can try using the Ping Class
var ping = new Ping();
var options = new PingOptions { DontFragment = true };
//just need some data. this sends 10 bytes.
var buffer = Encoding.ASCII.GetBytes(new string('z', 10));
var host = "Your Host Name";
try
{
var reply = ping.Send(host, 60, buffer, options);
if (reply == null)
{
MessageBox.Show("Reply was null");
return;
}
if (reply.Status == IPStatus.Success)
{
MessageBox.Show("Ping was successful.");
}
else
{
MessageBox.Show("Ping failed.");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Way 3:
You can ping a particular IP and see if you are able to connect , you are connected , else you are not connected. You can also give your intranet page name and try to get a response from it as well.
try
{
WebRequest request = WebRequest.Create("http://www.google.com");
WebResponse response = request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream());
MessageBox.Show("Hi");
}
catch
{
MessageBox.Show("Bye");
}
No comments:
Post a Comment