Hi All,
How can i get mac address from other computers with input ip address?

Please helps
Best Regards...

Recommended Answers

All 13 Replies

use this api function estella :

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 ScrIP As Long, pMacAddr As Long, PhyAddrLen As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (dst As Any, src As Any, ByVal bcount As Long)
commented: Fantastic, always wondered how that was done. +1
commented: great +1

That's excellent, I've wondered how that was done.
(rep added)

thx for the reply jx_man, but i really newbie in this. may i get some ex code please???

Best Regards...

Try This following Code :

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 ScrIP As Long, pMacAddr As Long, PhyAddrLen As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (dst As Any, src As Any, ByVal bcount As Long)

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

Private Sub btnGetMac_Click()
Dim sRemoteMacAddress As String
If Len(txtIpAddress.Text) > 0 Then
    If GetRemoteMACAddress(txtIpAddress.Text, sRemoteMacAddress) Then
        lblMacAddress.Caption = sRemoteMacAddress
    Else
        lblMacAddress.Caption = "(SendARP call failed)"
    End If
End If
End Sub

Actually this code can use as hacking tool, so use this code carefully friend.

It seems like this pic :

commented: What A Wonderful Code :) +1
commented: Never Know about this before +1
commented: i grab this code :) +1

Wow, Thx a lot Jx_Man. this a wonderful code.

you're welcome.
happy coding and once again careful with the code.

commented: Great Code :) +1

wonderful code... :)

AMAZING... that's all i can say.. ^^

Get MAC and IP addresses into your C# or any .NET programs by this DLL (download from this Link)

http://www.fileupyours.com/view/246666/CSharp%20Get%20MAC%20IP%20address%20DLL.zip

The program module DLL in this link is written in C# to provide the programmer the easiest method to find the MAC and the IP addresses of the PC, laptop or server. Download the ZIP file and extract DLL (6 Kb) and the PDF explaining how to add this DLL into your program. You dont have to define any field or any program module in your development environment. Just add the DLL file into the references in Visual Studio Solution Browser. Read the PDF file, everything is explained there, so easy, just few lines and all the network adapter MAC and IP addresses are in your program.

By Omer IRKAD omer.irkad@hotmail.com

Get MAC and IP addresses into your C# or any .NET programs by this DLL (download from this Link)

http://www.fileupyours.com/view/246666/CSharp%20Get%20MAC%20IP%20address%20DLL.zip

Try This following Code :

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 ScrIP As Long, pMacAddr As Long, PhyAddrLen As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (dst As Any, src As Any, ByVal bcount As Long)

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

Private Sub btnGetMac_Click()
Dim sRemoteMacAddress As String
If Len(txtIpAddress.Text) > 0 Then
    If GetRemoteMACAddress(txtIpAddress.Text, sRemoteMacAddress) Then
        lblMacAddress.Caption = sRemoteMacAddress
    Else
        lblMacAddress.Caption = "(SendARP call failed)"
    End If
End If
End Sub

Actually this code can use as hacking tool, so use this code carefully friend.

It seems like this pic :
[ATTACH]5027[/ATTACH]

hi, i would like to enquiry about the following:
lblMacAddress.Caption --> is this a label in visual studio? if not,what do i use?
CopyMemory bpMacAddr(0), pMacAddr, ByVal PhyAddrLen -
byMacAddr error: Method arguement must be enclosed in parenthesis
ByVal error: expression expected.
Left$ --> has no parameters and return type cannot be indexed.

i am currently using visual studio 2005. Kindly help me regarding the mentioned issue . Thanks!

i was long searching for that code that estalla asked... though i could copy that code, is it ok for you if i will try to use it also? thanks, so much!

please...

i was long searching for such code estella asked... though i could copy it, can ask your permission to use it also? please... my purpose is educational... please sir...

could you give me a permission to used this code in getting MAC address.. actually I am working on my thesis and I need to get mac addresses of the server and the clients connected in a network usin VB6... thanks po... God bless

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.