Results 1 to 3 of 3

Thread: IP From Netname In VB??

  1. #1

    Thread Starter
    Addicted Member Tiovital's Avatar
    Join Date
    Apr 2000
    Posts
    249
    Hi,

    Is there a way in VB to find the IP from Networkname ??

  2. #2
    Guru Aaron Young's Avatar
    Join Date
    Jun 1999
    Location
    Red Wing, MN, USA
    Posts
    2,177

    Winsock32 API

    Try this:

    In a Module:
    Code:
    Private Const MAX_WSADescription = 256
    Private Const MAX_WSASYSStatus = 128
    Private Const WS_VERSION_REQD = &H101
    
    Private Type HOSTENT
       hName As Long
       hAliases As Long
       hAddrType As Integer
       hLen As Integer
       hAddrList As Long
    End Type
    
    Private Type WSADATA
       wVersion As Integer
       wHighVersion As Integer
       szDescription(0 To MAX_WSADescription) As Byte
       szSystemStatus(0 To MAX_WSASYSStatus) As Byte
       wMaxSockets As Integer
       wMaxUDPDG As Integer
       dwVendorInfo As Long
    End Type
    
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
    Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal szHost As String) As Long
    Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
    Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
    
    Public Function GetIPAddress(ByVal sHost As String) As String
    
        Dim I As Integer
        Dim lHost As Long
        Dim lIP As Long
        Dim sIP() As Byte
        Dim sFullIP As String
        Dim tHost As HOSTENT
        Dim tSocket As WSADATA
        
        'Establish an Open Socket
        If WSAStartup(WS_VERSION_REQD, tSocket) <> 0 Then Exit Function
        
        'Attempt to Locate Data pointer for Specified Host Name
        lHost = gethostbyname(sHost)
         
        If lHost = 0 Then
            MsgBox "Unable to Locate Host."
        Else
            'Get the Host Info
            CopyMemory tHost, lHost, Len(tHost)
            'Extract the Address of the IP Data from the Addresslist Pointer
            CopyMemory lIP, tHost.hAddrList, Len(tHost.hAddrList)
            'Build a Tempory array to hold the IP Values
            ReDim sIP(tHost.hLen - 1)
            'Copy the IP Values into the Array
            CopyMemory sIP(0), lIP, tHost.hLen
            'Build the IP Address
            For I = 0 To tHost.hLen - 1
                sFullIP = sFullIP & "." & sIP(I)
            Next
            'Trim of the Preceeding Period
            GetIPAddress = Mid(sFullIP, 2)
        End If
        
        'Close up the Socket
        Call WSACleanup
    End Function
    In a Form with 2 Textboxes and a Command Button:
    Code:
    Private Sub Command1_Click()
        Text2 = GetIPAddress(Text1)
    End Sub
    - Aaron.

  3. #3

    Thread Starter
    Addicted Member Tiovital's Avatar
    Join Date
    Apr 2000
    Posts
    249
    Hi,
    Aaron Young - Thnks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width