USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Máquinas
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 07/12/2005 11:44 hs            
Olá Galera tudo beleza?
 
Uns tempos atrá parece que vi aqui no fórum uma rotina para listar todas as máquinas conectadas numa rede Windows,será que alguem poderia me passar o código.
Estou precisando muito dessa ajuda.
Desde já obrigado!!!!
   
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 08/12/2005 07:51 hs            
Galera arrumei uma classe que faz o que eu quero,se alguem quiser me manda um e-mail que eu repasso.......t+
   
Paula
BRASÍLIA
DF - BRASIL
ENUNCIADA !
Postada em 08/12/2005 15:37 hs            
Vc pode me enviar??
Agradeço desde já!!
 
Emoções
   
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 08/12/2005 15:55 hs            
Me da um tempinho pra mim fazer uma aplicaçãozinha de exemplo pra te enviar,porque só com o codigo vc vai demorar mais pra entender o funcionamento da classe,amanha cedo te envio...
   
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
ENUNCIADA !
Postada em 08/12/2005 16:12 hs            
Não sei a classe seria esta mais segue codigo :
Vc já tem um código que te retorna os nomes das máquinas, a classe abaixo resolve o nome da máquina e retorna o IP ou o contrário.

Para testar desenhe 1 textbox, 1 label e um commandbutton num form vazio e cole o seguinte código:

Dim DNS As New clsIPHostResolver

Private Sub Command1_Click()

    Label1 = DNS.NameToAddress(Text1)
    

End Sub


Crie um class module e renomeie para clsIPHostResolver e cole nele o código abaixo:

Option Explicit

Private mbInitialized As Boolean

Const WSADescription_Len = 256
Const WSASYS_Status_Len = 128

Const AF_INET = 4&

Private Type HOSTENT
    hName As Long
    hAliases As Long
    hAddrType As Integer
    hLength As Integer
    hAddrList As Long
End Type

Private Type WSADATA
    wversion As Integer
    wHighVersion As Integer
    szDescription(0 To WSADescription_Len) As Byte
    szSystemStatus(0 To WSASYS_Status_Len) As Byte
    iMaxSockets As Integer
    iMaxUdpDg As Integer
    lpszVendorInfo As Long
End Type

Private Declare Function WSAStartup Lib "wsock32" (ByVal VersionReq As Long, WSADataReturn As WSADATA) As Long

Private Declare Function WSACleanup Lib "wsock32" () As Long

Private Declare Function WSAGetMaxError Lib "wsock32" () As Long

Private Declare Function gethostbyaddr Lib "wsock32" (addr As Long, addrLen As Long, addrType As Long) As Long

Private Declare Function gethostbyname Lib "wsock32" (ByVal hostname As String) As Long

Private Declare Sub RtlMoveMemory Lib "kernel32" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)

'checks if string is valid IP address
Private Function CheckIP(IPToCheck As String) As Boolean

    Dim TempValues
    Dim iLoop As Long
    Dim TempByte As Byte
    
    On Error GoTo CheckIPError
    
    TempValues = Split(IPToCheck, ".")
    
    If UBound(TempValues) < 3 Then
    Exit Function
    End If
    
    For iLoop = LBound(TempValues) To UBound(TempValues)
    TempByte = TempValues(iLoop)
    Next iLoop
    CheckIP = True
    
CheckIPError:

End Function

'converts IP address from string to sin_addr
Private Function MakeIP(strIP As String) As Long

    Dim vTemp
    Dim lngTemp As Long
    Dim iLoop As Long
    
    On Error GoTo MakeIPError
    
    vTemp = Split(strIP, ".")
    
    For iLoop = 0 To (UBound(vTemp) - 1)
    lngTemp = lngTemp + (vTemp(iLoop) * (256 ^ iLoop))
    Next iLoop
    
    If vTemp(UBound(vTemp)) < 128 Then
    lngTemp = lngTemp + (vTemp(UBound(vTemp)) * (256 ^ 3))
    Else
    lngTemp = lngTemp + ((vTemp(UBound(vTemp)) - 256) * (256 ^ 3))
    End If
    
    MakeIP = lngTemp
MakeIPError:
End Function

'resolves IP address to host name
Private Function AddrToName(strAddr As String) As String

    Dim heEntry As HOSTENT
    Dim strHost As String * 255
    Dim strTemp As String
    Dim lngRet As Long
    Dim lngIP As Long
    
    On Error GoTo AddrToNameError
    
    If CheckIP(strAddr) Then
    lngIP = MakeIP(strAddr)
    lngRet = gethostbyaddr(lngIP, 4, AF_INET)
    If lngRet = 0 Then
        Exit Function
    End If
    RtlMoveMemory heEntry, lngRet, Len(heEntry)
    RtlMoveMemory ByVal strHost, heEntry.hName, 255
    strTemp = TrimNull(strHost)
    AddrToName = strTemp
    End If

AddrToNameError:
End Function
'resolves host name to IP address
Private Function NameToAddr(ByVal strHost As String)

    Dim ip_list() As Byte
    Dim heEntry As HOSTENT
    Dim strIPAddr As String
    Dim lp_HostEnt As Long
    Dim lp_HostIP As Long
    Dim iLoop As Integer
    
    On Error GoTo NameToAddrError
    
    lp_HostEnt = gethostbyname(strHost)
    
    If lp_HostEnt = 0 Then
    Exit Function
    End If
    
    RtlMoveMemory heEntry, lp_HostEnt, LenB(heEntry)
    RtlMoveMemory lp_HostIP, heEntry.hAddrList, 4
    
    ReDim ip_list(1 To heEntry.hLength)
    
    RtlMoveMemory ip_list(1), lp_HostIP, heEntry.hLength
    
    For iLoop = 1 To heEntry.hLength
    strIPAddr = strIPAddr & ip_list(iLoop) & "."
    Next
    
    strIPAddr = Mid(strIPAddr, 1, Len(strIPAddr) - 1)
    
    NameToAddr = strIPAddr
NameToAddrError:

End Function
Public Function AddressToName(strIP As String) As String

    If mbInitialized Then
    AddressToName = AddrToName(strIP)
    End If

End Function

Public Function NameToAddress(strName As String) As String

    If mbInitialized Then
    NameToAddress = NameToAddr(strName)
    End If

End Function

Private Function TrimNull(sTrim As String) As String

    Dim iFind As Long

    iFind = InStr(1, sTrim, Chr(0))
    If iFind > 0 Then
    TrimNull = Left(sTrim, iFind - 1)
    Else
    TrimNull = sTrim
    End If

End Function

Private Sub Class_Initialize()

    Dim wsa As WSADATA
    mbInitialized = (WSAStartup(257, wsa) = 0)
    
End Sub

Private Sub Class_Terminate()

    If mbInitialized Then
    WSACleanup
    End If

End Sub
 
 

"O pior inimigo que você poderá encontrar será sempre você mesmo."
   
Keyo
Pontos: 2843
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 09/12/2005 07:06 hs            
Naum é isso Gerônimo,o que esta classe faz e buscar todos os computadores da rede e listar num grid sem saber ip nem nome das maquinas ela simplesmente faz uma busca na rede e te retorna todo mundo que tiver conectado...
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página