您的位置:首页 > 其它

通过ip获得远程主机的MAC

2012-06-21 00:22 465 查看
通过ip获得远程主机的MAC

2008-10-17 17:39
过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编译通过!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: