过ip地址获得远程主机的ip,基本上也和上文一样是基础类的技术。注意本文技术只限于同局域网主机.
//--------------------------------------------------------------------------------------------------------------------------------//
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <Iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib")
#pragma comment(lib, "WS2_32.lib")
int GetRemoteMac(unsigned char*remoteMac,char *remoteIP)//获取某IP真实mac地址 并输出
{
WSADATA wsdata;
ULONG remoteAddr=0,macAddrlen=6;
unsigned char remoteMacTemp[6]={0};
if(WSAStartup(MAKEWORD(2,1),&wsdata)!=0)
{
printf("WSAStartup Error!\r\n");
return 0;
}
remoteAddr=inet_addr(remoteIP);
if(SendARP(remoteAddr,(unsigned long)NULL,(PULONG)&remoteMacTemp,&macAddrlen)!=NO_ERROR)
{
printf("Get Remote MAC failed!\r\n");
return 0;
}
memcpy(remoteMac,remoteMacTemp,6);
return 1;
}
void main()
{
char RemoteIp[15];
unsigned char MAC[6];
printf("请输入远程主机内网ip\n例如:192.168.1.12\n");
scanf("%s",RemoteIp);
GetRemoteMac(MAC,RemoteIp);
printf("%s的MAC地址:",RemoteIp);
printf("%.2X-%.2X-%.2X-%.2X-%.2X-%.2X\n",
MAC[0],
MAC[1],
MAC[2],
MAC[3],
MAC[4],
MAC[5]);
}
//------------------------------------------------------------------------------------------------------------------------------//
vc6.0编译通过!