Contact Info

Crumbtrail

ActiveXperts.com » Network Monitor » Scripts » Custom Script

traceroute.vbs - vbscript script by ActiveXperts Software

traceroute.vbs tracks the route of packets from one IP to another.

Use traceroute.vbs directly from ActiveXperts Network Monitor; in the Manager's 'Monitor' menu, select 'New Check (Script)' and select traceroute.vbs. Configure the required parameter, or press 'Load a working sample'.

In ActiveXperts Network Monitor, Administrators can use three different scripting languages: Powershell, VBScript and SSH.


traceroute.vbs script code

' ///////////////////////////////////////////////////////////////////////////////
' // ActiveXperts Network Monitor  - VBScript based checks
' // For more information about ActiveXperts Network Monitor and VBScript, visit
' // http://www.activexperts.com/support/network-monitor/online/vbscript/
' ///////////////////////////////////////////////////////////////////////////////

Option Explicit

' Declaration of global variables
Dim   SYSDATA, SYSEXPLANATION   ' SYSDATA is displayed in the 'Data' column in the Manager; SYSEXPLANATION in the 'LastResponse' column

' Constants - return values
Const retvalUnknown = 1         ' ActiveXperts Network Monitor functions should always return True (-1, Success), False (0, Error) or retvalUnknown (1, Uncertain)

' // To test a function outside Network Monitor (e.g. using CSCRIPT from the
' // command line), remove the comment character (') in the following lines:
' Dim bResult
' bResult = CheckTftp( "10.1.1.100", "/music/song001.mp3" )
' WScript.Echo "Return value: [" & bResult & "]"
' WScript.Echo "SYSDATA: [" & SYSDATA & "]"
' WScript.Echo "SYSEXPLANATION: [" & SYSEXPLANATION & "]"


Function CheckRoute( strHost, nMaxHops, nMaxResponseTime )
' Description:
'     Tracks the route packets taken from an IP network on their way to a given host.
'     This function uses ActiveXperts Network Component.
'     ActiveXperts Network Component is automatically licensed when ActiveXperts Network Monitor is purchased
'     For more information about ActiveXperts Network Component, see: www.activexperts.com/network-component
' Parameters:
'     1) strHost - Host name or IP address or target
'     2) nMaxHops - Maximum number of hops to search for target
'     3) nMaxResponseTime - Wait timeout milliseconds for each reply 
' Usage:
'     CheckRoute( "<Hostname | IP>", <MaximumHops> , <MaximumResponseTimeMsecs> )
' Sample:
'     CheckRoute( "www.activexperts.com", 30, 500 )

  Dim objHop, objTraceRt, strResponseTime, strHopName, nHops

  CheckRoute     = retvalUnknown   ' Default return value
  SYSDATA        = "0"
  SYSEXPLANATION = ""

  nHops          = 0

  Set objTraceRt = CreateObject( "AxNetwork.TraceRoute" )

  ' Enable logging for troubleshooting purposes
  ' objTraceRt.LogFile = "C:\Temp\TraceRt.txt"

  ' Resolve Host Names. It takes a bit longer, but makes sense to have hostnames instead of IP addresses
  objTraceRt.ResolveHostName  = True
  objTraceRt.MaxHops = nMaxHops
  objTraceRt.Timeout = nMaxResponseTime

  Set objHop = objTraceRt.FindFirstHop( strHost )
  If( objTraceRt.LastError <> 0 ) Then
    CheckRoute  = False
    SYSDATA     = nHops
    SYSEXPLANATION = "Route to [" & strHost & "] not found; result=[" & objTraceRt.LastError & ": " & objTraceRt.GetErrorDescription( objTraceRt.LastError ) & "]"
    Exit Function
  End If

  Do
    If( objHop.Host <> "" ) Then
      strHopName = objHop.Host
    Else
      strHopName = objHop.IP
    End If

    nHops        = nHops + 1

    If( objHop.ResponseTime > nMaxResponseTime ) Then
      CheckRoute = False
      SYSDATA    = nHops
      SYSEXPLANATION = "Hop [" &  strHopName & "] response timeout [" & nMaxResponseTime & "ms] exceeded, time=[" & objHop.ResponseTime & "ms]"
      Exit Function
    End If

    Set objHop = objTraceRt.FindNextHop
  Loop Until objTraceRt.LastError <> 0

  CheckRoute = True
  SYSDATA    = nHops    
  SYSEXPLANATION = "TraceRoute succeeded, all [" & nHops & "] hops replied within [" & objTraceRt.Timeout & "ms]" 
 
End Function