请问如何远程获取MAC地址
怎么在C++中未查到远程获取MAC地址与IP地址及机器名的函数。(当然是获取一个网段的了)
问题点数:20、回复次数:3Top
1 楼yanghh1226(香草天空)回复于 2002-08-15 15:21:59 得分 2
你可以到www.vckbase.com,那上面有这方面的文章。Top
2 楼masterz(www.fruitfruit.com)回复于 2002-08-15 15:29:38 得分 10
SendARP(...)
// Get MAC address of a computer in the local network(not itself).
// if it works, it is written by masterz^_^
#include "stdafx.h"
#include "windows.h"
#include "winsock2.h"
#include "Iphlpapi.h"
#pragma comment(lib,"iphlpapi")
#pragma comment(lib,"ws2_32.lib")
#define winsock_version 0x0202
void main()
{
WSADATA wsadata;
if(WSAStartup(winsock_version,&wsadata))
printf("can't initialize socket");
IPAddr ipdest;
const char* destip ="211.157.102.21";
ipdest = inet_addr(destip);
ULONG umac=0,ulen=8;
char buf[256];
ZeroMemory(buf,256);
if(NO_ERROR!=SendARP(ipdest,0,(PULONG)buf,&ulen))
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
}
else
{
printf("\n\n\nMac address of %s is:",destip);
for(int i=0;i<(int)ulen;i++)
printf("%2x",buf[i]&0xff);
printf("\n\n\n");
}
WSACleanup();
}Top
3 楼yayv(yayv)回复于 2002-08-15 15:45:09 得分 8
用sendARP
前几天刚有人在这里问过
http://www.csdn.net/Expert/TopicView1.asp?id=896478Top




