
Navigator : Home > Tutorials > Network Tutorials > ...
Pinging with options using ASP.NET 2.0 and VB .NET
This tutorial will show you how to include ping options when pinging a hostname/ip using the .NET System.Net class, ASP.NET 2.0 and VB.NET
The .NET Framework offers a number of types that makes accessing resources on the network easy.
We chose Server Intellect for its dedicated servers, for our web hosting. They have managed to handle virtually everything for us, from start to finish. And their customer service is stellar.
To display an external webpage we will need to use the System.IO, System.Net, and System.Text namespaces.
imports System.Net; imports System.Net.NetworkInformation; imports System.Text; |
We'll put our code in the btnSubmit_Click() event.
When the btnSubmit_Click() event fires it creates a new Ping object. We can then execute the Send method of this object to send a ping to the host specified in our text box. Executing this method also returns a PingReply object which we can use to gather information such as the Address, Roundtrip Time, TTL, and Buffer Size. In addition, we define ping options using the PingOptions class.
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Try
lblStatus.Text = Nothing txtPing.Text = Nothing
'Ping Options and Parameters Dim pingopts As PingOptions = New PingOptions() pingopts.DontFragment = chkFrag.Checked pingopts.Ttl = Convert.ToInt32(txtTTL.Text)
'create byte array for buffer Dim buffer As Byte() = Encoding.ASCII.GetBytes(txtBuffer.Text)
Dim ping As Ping = New Ping() Dim pingreply As PingReply = ping.Send(txtHost.Text, Convert.ToInt32(txtTimeOut.Text), buffer, pingopts) txtPing.Text &= "Address: " & pingreply.Address.ToString() & Constants.vbCr txtPing.Text &= "Roundtrip Time: " & pingreply.RoundtripTime.ToString() + Constants.vbCr txtPing.Text &= "TTL (Time To Live): " & pingreply.Options.Ttl.ToString() + Constants.vbCr txtPing.Text &= "Buffer Size: " & pingreply.Buffer.Length.ToString() & Constants.vbCr Catch err As Exception
lblStatus.Text = err.Message End Try End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
|
The front end .aspx page looks something like this:
We migrated our web sites to Server Intellect over one weekend and the setup was so smooth that we were up and running right away. They assisted us with everything we needed to do for all of our applications. With Server Intellect's help, we were able to avoid any headaches!
<table width="600" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#cccccc">
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">Hostname/IP:</td> <td align="center" bgcolor="#FFFFFF"> <asp:textbox ID="txtHost" runat="server"></asp:textbox> </td> </tr>
<tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">Ping Options:</td> <td align="center" bgcolor="#FFFFFF"> TTL (Time To Live): <asp:TextBox ID="txtTTL" runat="server" Width="24px"></asp:TextBox> <br /> <asp:CheckBox ID="chkFrag" runat="server" Text="Dont Fragment" /> <br /> Buffer: <asp:TextBox ID="txtBuffer" runat="server" Width="175px"></asp:TextBox> <br /> Timeout: <asp:TextBox ID="txtTimeOut" runat="server" Width="24px"></asp:TextBox><br /> <asp:button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /></td> </tr> <tr>
<td width="100" align="right" bgcolor="#eeeeee" class="header1">Ping Results:</td> <td align="center" bgcolor="#FFFFFF"> <asp:textbox ID="txtPing" runat="server" Height="66px" TextMode="MultiLine" Width="226px"></asp:textbox> <br /> <asp:label ID="lblStatus" runat="server"></asp:label></td> </tr> </table> |
The flow for the code behind page is as follows:
Imports System.Net Imports System.Net.NetworkInformation Imports System.Text Partial Class _Default
Inherits System.Web.UI.Page Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Try
lblStatus.Text = Nothing txtPing.Text = Nothing
'Ping Options and Parameters Dim pingopts As PingOptions = New PingOptions() pingopts.DontFragment = chkFrag.Checked pingopts.Ttl = Convert.ToInt32(txtTTL.Text)
'create byte array for buffer Dim buffer As Byte() = Encoding.ASCII.GetBytes(txtBuffer.Text)
Dim ping As Ping = New Ping() Dim pingreply As PingReply = ping.Send(txtHost.Text, Convert.ToInt32(txtTimeOut.Text), buffer, pingopts) txtPing.Text &= "Address: " & pingreply.Address.ToString() & Constants.vbCr txtPing.Text &= "Roundtrip Time: " & pingreply.RoundtripTime.ToString() + Constants.vbCr txtPing.Text &= "TTL (Time To Live): " & pingreply.Options.Ttl.ToString() + Constants.vbCr txtPing.Text &= "Buffer Size: " & pingreply.Buffer.Length.ToString() & Constants.vbCr Catch err As Exception
lblStatus.Text = err.Message End Try End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub End Class |
We moved our web sites to Server Intellect and have found them to be incredibly professional. Their setup is very easy and we were up and running in no time.
Looking for the C#.NET 2005 Version? Click Here!
Looking for more ASP.NET Tutorials? Click Here!