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

 

  Dicas

  Visual Basic    (Internet)

Título da Dica:  RETORNAR ENDEREÇO DE UMA MÁQUINA REMOTA
Postada em 5/4/2006 por JOHNNY      Clique aqui para enviar email para o autor  talk2cod@hotmail.com
FAÇA DOIS TEXTBOX E UM COMMMANDBUTTON.


Option Explicit

Private Const NO_ERROR = 0

Private Declare Function inet_addr Lib "wsock32.dll" _
  (ByVal s As String) As Long

Private Declare Function SendARP Lib "iphlpapi.dll" _
  (ByVal DestIP As Long, _
   ByVal SrcIP As Long, _
   pMacAddr As Long, _
   PhyAddrLen As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (dst As Any, _
   src As Any, _
   ByVal bcount As Long)
  


Private Sub Form_Load()

   Text1.Text = "192.168.1.101"
   Text2.Text = ""
   Command1.Caption = "RETORNAR ENDEREÇO DE MÁQUINA REMOTA"
  
End Sub


Private Sub Command1_Click()

   Dim sRemoteMacAddress As String
  
   If Len(Text1.Text) > 0 Then
  
      If GetRemoteMACAddress(Text1.Text, sRemoteMacAddress) Then
         Text2.Text = sRemoteMacAddress
      Else
         Text2.Text = "(SendARP call failed)"
      End If
    
   End If

End Sub


Private Function GetRemoteMACAddress(ByVal sRemoteIP As String, _
                                     sRemoteMacAddress As String) As Boolean

   Dim dwRemoteIP As Long
   Dim pMacAddr As Long
   Dim bpMacAddr() As Byte
   Dim PhyAddrLen As Long
   Dim cnt As Long
   Dim tmp As String
   dwRemoteIP = inet_addr(sRemoteIP)
    If dwRemoteIP <> 0 Then
      PhyAddrLen = 6
      If SendARP(dwRemoteIP, 0&, pMacAddr, PhyAddrLen) = NO_ERROR Then
    
         If pMacAddr <> 0 And PhyAddrLen <> 0 Then
            ReDim bpMacAddr(0 To PhyAddrLen - 1)
            CopyMemory bpMacAddr(0), pMacAddr, ByVal PhyAddrLen
            For cnt = 0 To PhyAddrLen - 1
               If bpMacAddr(cnt) = 0 Then
                  tmp = tmp & "00-"
               Else
                  tmp = tmp & Hex$(bpMacAddr(cnt)) & "-"
               End If
        
            Next
            If Len(tmp) > 0 Then
               sRemoteMacAddress = Left$(tmp, Len(tmp) - 1)
               GetRemoteMACAddress = True
            End If

            Exit Function
        
         Else
            GetRemoteMACAddress = False
         End If
          
      Else
         GetRemoteMACAddress = False
      End If      
   Else
      GetRemoteMACAddress = False
   End If      
End Function
 


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