Visual Basic Network Services
IsNetworkAlive: Determine Network Connection State
     
Posted:   Friday April 20, 2001
Updated:   Monday December 26, 2011
     
Applies to:   VB4-32, VB5, VB6
Developed with:   VB6, Windows 2000
OS restrictions:   None
Author:   VBnet - Randy Birch
     

Related:  

InternetGetConnectedState: Determine Network Connection Type
IsNetworkAlive: Determine Network Connection State
IsDestinationReachable: Determine Network QOC Info
gethostbyaddr: Obtain Host Name from IP Address
IcmpSendEcho: Ping a Machine by IP Address
IcmpSendEcho: Ping a Machine by Host Name

IsNetDrive: Determining the Connection State of a Mapped Drive
     
 Prerequisites
Network or DUN connection, IE4 or greater.

IsNetworkAlive determines whether the local system is connected to a network and the type of network connection available when the return value is True. On NT/2000 the valid connections returned are LAN or WAN, while on Win9x a third option is available indicating the connection is to AOL.

This demo shows five wrapper functions for IsNetworkAlive; three returning True or False if the type of connection being tested for is active, one that returns True if any connection is available, and one returning a descriptive string.

IsNetworkAlive can be used by applications to determine whether there is network connectivity before proceeding with network operations. Applications such as directory service applications, e-mail clients, or Internet browsers can adapt to various types of network connectivity. For example, a printing operation can be deferred until the network connection is available. IsNetworkAlive is only available for TCP/IP connections.

This function is available on Windows XP, 2000 (or Windows NT 4.0 with Internet Explorer 5 or later), and on Windows 95 or later with Internet Explorer 5 or later.

 BAS Module Code
None:

 Form Code
To a form add a command button (Command1), and five text boxes (Text1-Text6). Label as desired, and add the following form code:

Option Explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright 1996-2011 VBnet/Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce 
'               or publish this code on any web site,
'               online service, or distribute as source 
'               on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Const NETWORK_ALIVE_LAN = &H1  'net card connection
Private Const NETWORK_ALIVE_WAN = &H2  'RAS connection
Private Const NETWORK_ALIVE_AOL = &H4  'AOL
       
Private Declare Function IsNetworkAlive Lib "Sensapi" _
  (lpdwFlags As Long) As Long


Private Sub Command1_Click()

   Text1.Text = IsNetConnectionLAN()
   Text2.Text = IsNetConnectionRAS()
   Text3.Text = IsNetConnectionAOL()

   Text4.Text = IsNetConnectionAlive()
   Text5.Text = GetNetConnectionType()  

End Sub


Private Function IsNetConnectionAlive() As Boolean

   Dim tmp As Long
   IsNetConnectionAlive = IsNetworkAlive(tmp) = 1
   
End Function


Private Function IsNetConnectionLAN() As Boolean

   Dim tmp As Long
   
   If IsNetworkAlive(tmp) = 1 Then
      IsNetConnectionLAN = tmp = NETWORK_ALIVE_LAN
   End If

End Function


Private Function IsNetConnectionRAS() As Boolean

   Dim tmp As Long
   
   If IsNetworkAlive(tmp) = 1 Then
      IsNetConnectionRAS = tmp = NETWORK_ALIVE_WAN
   End If
   
End Function


Private Function IsNetConnectionAOL() As Boolean

   Dim tmp As Long
   
   If IsNetworkAlive(tmp) = 1 Then
      IsNetConnectionAOL = tmp = NETWORK_ALIVE_AOL
   End If

End Function


Private Function GetNetConnectionType() As String

   Dim tmp As Long

   If IsNetworkAlive(tmp) = 1 Then
   
      Select Case tmp
         Case NETWORK_ALIVE_LAN: 
            GetNetConnectionType = _
             "The system has one or more active LAN cards"
         Case NETWORK_ALIVE_WAN: 
            GetNetConnectionType = _
             "The system has one or more active RAS connections"
         Case NETWORK_ALIVE_AOL: 
            GetNetConnectionType = _
             "The system is connected to America Online"
         Case Else
      End Select
      
   Else
   
      GetNetConnectionType = _
       "The system has no connection or an error occurred"
   
   End If
   
End Function
 Comments
Save the project and run.  Depending on your current connection state and installed options, the appropriate messages and return values will be displayed.

 
 

PayPal Link
Make payments with PayPal - it's fast, free and secure!

 
 
 
 

Copyright 1996-2011 VBnet and Randy Birch. All Rights Reserved.
Terms of Use  |  Your Privacy

 

Hit Counter