Projects

Find all our projects in development below.
All source code is GNU General Public License (GPL)

javaSpy

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

Download frmTraceRoute.vb

Back to file list


Back to project page