Find all our projects in development below.
All source code is GNU General Public License (GPL)
Browsing frmTraceRoute.vb (3.73 KB)
Option Explicit On
Imports System.Net
Imports System.Net.NetworkInformation
Public Class frmTraceRoute
Private ReadOnly inputText As String = ""
Private lastHop As Integer = 0
Public Sub New(Optional ByVal HostNameOrIP As String = "")
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
inputText = HostNameOrIP
End Sub
Private Sub frmTraceRoute_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
txtIP.Text = inputText
End Sub
Private Sub frmTraceRoute_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
txtIP.Focus()
If txtIP.Text <> "" Then btnTraceRoute.PerformClick()
End Sub
Private Sub txtIP_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtIP.KeyDown
If e.KeyCode = Keys.Enter Then btnTraceRoute.PerformClick()
End Sub
Private Sub btnTraceRoute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTraceRoute.Click
If txtIP.Text.Trim = "" Then
MessageBox.Show("Please enter the ip or hostname to trace.", Application.ProductName, _
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
txtIP.Focus()
Exit Sub
End If
txtIP.Enabled = False
btnTraceRoute.Enabled = False
lvTraceRoute.Items.Clear()
lastHop = 0
lblStatus.Text = "Tracing route to " + txtIP.Text + "..."
Try
traceRt.HostNameOrAddress = txtIP.Text
traceRt.Trace()
Catch ex As Exception
MessageBox.Show("Error: " + ex.Message, Application.ProductName, _
MessageBoxButtons.OK, MessageBoxIcon.Error)
txtIP.Enabled = True
btnTraceRoute.Enabled = True
lblStatus.Text = "Ready"
End Try
End Sub
Private Sub traceRt_RouteNodeFound(ByVal sender As Object, ByVal e As ctrlTraceRoute.RouteNodeFoundEventArgs) Handles traceRt.RouteNodeFound
With lvTraceRoute.Items.Add((lastHop + 1).ToString())
.SubItems.Add(e.Node.Address.ToString())
Try
Dim host As IPHostEntry = Dns.GetHostEntry(e.Node.Address.ToString())
.SubItems.Add(host.HostName)
Catch
.SubItems.Add("")
End Try
.SubItems.Add(IIf(e.Node.Status = IPStatus.Success, e.Node.RoundTripTime.ToString() + " ms", "*"))
End With
lastHop += 1
End Sub
Private Sub traceRt_Done(ByVal sender As Object, ByVal e As System.EventArgs) Handles traceRt.Done
txtIP.Enabled = True
btnTraceRoute.Enabled = True
lblStatus.Text = String.Format("Ready; found {0} node(s)", lvTraceRoute.Items.Count)
End Sub
Private Sub mnuPopupCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPopupCopy.Click
If lvTraceRoute.SelectedItems.Count > 0 Then
Try
Dim copyData As String = lvTraceRoute.SelectedItems(0).Text + vbTab
For i As Integer = 1 To lvTraceRoute.SelectedItems(0).SubItems.Count - 1
copyData += lvTraceRoute.SelectedItems(0).SubItems(i).Text
If i < lvTraceRoute.SelectedItems(0).SubItems.Count - 1 Then _
copyData += vbTab
Next
Clipboard.SetText(copyData, TextDataFormat.Text)
Catch
End Try
End If
End Sub
End Class