如何根据IP地址获得其MAC地址?
请教该调用什么函数获得IP地址的MAC地址?
我看有些软件可以扫描到IP地址的MAC地址,想知道怎么实现?
谢谢!
问题点数:20、回复次数:5Top
1 楼javanj()回复于 2002-03-15 16:54:31 得分 5
可以使用iphlpapi.dll中的函数,具体看msdnTop
2 楼javanj()回复于 2002-03-15 16:56:32 得分 5
Functions for Application Developers
The iphlpapi module contains the following functions for application developers, which are defined in the Iphlpapi.h header file. To import these functions, you need to link to the iphlpapi.lib file.
Function
AddIPAddress
CreateIpForwardEntry
CreateIpNetEntry
CreateProxyArpEntry
DeleteIPAddress
DeleteIpForwardEntry
DeleteIpNetEntry
DeleteProxyArpEntry
FlushIpNetTable
GetAdapterIndex
GetAdaptersInfo
GetBestInterface
GetBestRoute
GetFriendlyIfIndex
GetIcmpStatistics
GetIfEntry
GetIfTable
GetInterfaceInfo
GetIpAddrTable
GetIpForwardTable
GetIpNetTable
GetIpStatistics
GetNetworkParams
GetNumberOfInterfaces
GetPerAdapterInfo
GetRTTAndHopCount
GetTcpStatistics
GetTcpTable
GetUdpStatistics
GetUdpTable
GetUniDirectionalAdapterInfo
IpReleaseAddress
IpRenewAddress
NotifyAddrChange
NotifyRouteChange
SendARP
SetIfEntry
SetIpForwardEntry
SetIpNetEntry
SetIpStatistics
SetIpTTL
SetTcpEntry
Top
3 楼Bardo(巴顿(永远只有一个))回复于 2002-03-15 18:28:36 得分 5
以下是要用到的函数与常量,
程序你自己写吧
函数用法参见MSDN
Private Declare Function SendARP Lib "iphlpapi.dll" _
(ByVal DestIP As Long, _
ByVal SrcIP As Long, _
pMacAddr As Long, _
PhyAddrLen As Long) As Long
'-----END iphlpapi Function-----
'-----BEGIN WinSocket2 Function-----
Private Declare Function inet_addr Lib "ws2_32.dll" _
(ByVal cp As Long) As Long
'-----END WinSocket2 Function-----
Private Const NO_ERROR = 0 ' dderror
'-----BEGIN System Function-----
Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As _
Long, ByVal cbCopy As Long)
Private Declare Function lstrlen Lib "kernel32" Alias _
"lstrlenA" (ByVal lpString As String) As Long
Private Declare Function FormatMessage Lib "kernel32" Alias _
"FormatMessageA" (ByVal dwFlags As Long, _
lpSource As Any, _
ByVal dwMessageId As Long, _
ByVal dwLanguageId As Long, _
ByVal lpBuffer As String, _
ByVal nSize As Long, _
Arguments As Long) As Long
Private Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Private Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200
Top
4 楼Mailbomb(网络咖啡http://blog.csdn.net/mailbomb)回复于 2002-03-15 20:15:09 得分 5
在DOS下按顺序执行以下命令:
ping IP地址
arp- a
就可以获得该IP的MAC地址,不过这个方法一般只在局域网内有效,因为路由器会过滤arp的Top
5 楼langzhi(langzhi)回复于 2002-05-03 22:59:51 得分 0
做个标记Top




