通过ip获得远程主机的MAC

通过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编译通过!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值