Introducing DotNetFunda.com on mobile http://m.dotnetfunda.com ! Be with DotNetFunda.com on the go !
Go to DotNetFunda.com
Twitter TwitterLinkedIn
YouTubeGoogle
 Online : 4958 |  Welcome, Guest!   Register  Login
Home > Articles > Silverlight > How to Ping network IP or Hostname in Silverlight Application?

How to Ping network IP or Hostname in Silverlight Application?

1 vote(s)
Rating: 4 out of 5
Article posted by Kunal2383 on 3/4/2010 | Views: 5427 | Category: Silverlight | Level: Beginner red flag


Pinging a network IP or Hostname is not available in Silverlight. But you can do this using WCF service. In this post I am going to implement the same thing for you. I am using Silverlight 4 here. But this can also be possible in Silverlight 3.

Download


 Download source code for How to Ping network IP or Hostname in Silverlight Application?


Introduction

Pinging a network IP or Hostname is not available in Silverlight. But you can do this using WCF service. In this post I am going to implement the same thing for you. I am using Silverlight 4 here. But this can also be possible in Silverlight 3.


Code Implementation

Create a Silverlight application with Silverlight hosting website as “ASP.NET Web Site”:

image

Now this will create a XAML page for you by default. Add one TextBox & one Button into it. We will use TextBox to enter IP Address or the Hostname & on click of the Button it will ping that entered IP or Hostname. As a limitation to the Silverlight you can’t ping directly from the client application. You need to create a WCF service & using that you can easily ping. Remember there are some limitations here too as you are pinging it from the WCF hosting server.

Let’s implement our WCF service. Create a service method named PingNetwork and pass the hostNameOrAddress as a string. This will be your IP address or the host’s DNS name. Then create an instance of System.Net.NetworkInformation.Ping & pass the required parameter to it’s “Send” method. This will return you “PingReply”. Now check the Status of the reply. There are several options available. I used only IPStatus.Success to check it and depending upon that returning true or false.

    public bool PingNetwork(string hostNameOrAddress)
{
bool pingStatus = false;

using (Ping p = new Ping())
{
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int timeout = 120;

try
{
PingReply reply = p.Send(hostNameOrAddress, timeout, buffer);
pingStatus = (reply.Status == IPStatus.Success);
}
catch (Exception)
{
pingStatus = false;
}
}

return pingStatus;
}

Now come to the client side implementation. Add the service reference to the Silverlight application and then call the service method with your IP Address or the DNS name of the host:

    client.PingNetworkAsync("google.com");

As it is an Asynchronous call, implement the “Completed” event for the method. In the completed event check the e.Result value. If the server is able to ping it will return true & in other case it will return false.

This is a simple implementation of the logic. As told earlier, this will ping from server & not from the client.

Sample Application Download

Get the solution from my share: "Ping Demo Solution"



If you like this article, subscribe to our RSS Feed. You can also subscribe via email to our Interview Questions, Codes and Forums section.

Page copy protected against web site content infringement by Copyscape
Found interesting? Add this to:



Please Sign In to vote for this post.

Experience:3 year(s)
Home page:http://www.kunal-chowdhury.com
Member since:Monday, March 01, 2010
Level:Starter
Status: [Member]
Biography:He is currently working as a Silverlight application developer. Has a very good skill over C#, XAML, Silverlight & WPF. He has a good working experience in Windows 7 application (including Multitouch) development.

During his professional career he worked in various technologies & delivered quality output. He never hesitates to take up challenges & work on the latest technologies in Microsoft platform.

He attended various software development competition & achieved different awards.

He is presently focusing on the RIA (Silverlight & WPF) & willing to become a Technology Specialist in Microsoft platform. Learning newer things, Blog posting & helping others in forums is one of his regular activity.

Specialties: Silverlight Application Development, WPF Application Development, Windows 7 Application Development
>> Write Response - Respond to this post and get points
Related Posts

In this Chapter I will describe about different Panels available in Silverlight. After reading this chapter you will be familiar with various types of Silverlight Panels. As this tutorial is mainly targeted for Silverlight 4, hence you will find some panels unavailable in the earlier versions of Silverlight.

Welcome again to Dotnetfunda. In this article I am going to demostrate on how to send an email in Silverlight. I have previously wrote an article on how you can do that in asp.net, but now in Silverlight the approach is different and a newbie or even an experienced person can get lost. I am known by writing easly interpreted articles and I will keep on doing that , by even providing you with screenshots. Thanks again to Sheo who take my article as word document and post them on my behalf. I am a programmer who does not like to spent to much time on a word processing program like ms word.

Telerik Assembly Minifier is a tool that lets you extract only the controls’ classes and resources you need to use in your application development, thus significantly reducing the size of the assemblies. Using the Assembly Minifier you will achieve significantly better loading time when the XAP files containing the minified (optimized) assemblies are to be loaded on the client side.

In this post I teach you how you can integrate JavasScript in your Silverlight apps. Sample source code available for download.

Loading and Inserting Data from Database in Silverlight Without Using LINQ to SQL Class

More ...
About Us | Contact Us | The Team | Advertise | Software Development | Write for us | Testimonials | Privacy Policy | Terms of Use | Link Exchange | Members | Go Top
General Notice: If you found plagiarised (copied) contents on this page, please let us know the original source along with your correct email id (to communicate) for further action.
Copyright © DotNetFunda.Com. All Rights Reserved. Copying or mimicking the site design and layout is prohibited. Logos, company names used here if any are only for reference purposes and they may be respective owner's right or trademarks. | 5/21/2012 7:56:42 AM