标题:
[转帖]获取远程机器名与Mac地址的代码
[打印本页]
作者:
kkting
时间:
2005-6-20 19:42
标题:
[转帖]获取远程机器名与Mac地址的代码
信息来源:www.bbnl.org #include "stdio.h" #include "stdlib.h" #include "Winsock2.h" #include "iphlpapi.h" #pragma comment ( lib, "ws2_32.lib" ) #pragma comment ( lib, "Iphlpapi.lib" ) void main( int argc, char ** argv ) { //处理命令行参数 if ( argc != 2 ) { printf( "RmtHost v0.1 - Get remote HostName /MacAddress\n" ); printf( "by ShotgunLabs (
Shotgun@xici.net
)\n\n" ); printf( "Usage :\n\tRmtHost.exe [RemoteIP]\n\n"); printf( "Example:\n\tRmtHost.exe 192.168.0.3\n\n"); exit( 0 ); } printf( "\nIpAddress : %s\n", argv[1] ); //初始化SOCKET WSADATA wsaData; int iRet = WSAStartup(MAKEWORD(2,1), &wsaData); if ( iRet != 0 ) { printf( "WSAStartup Error:%d\n", GetLastError() ); exit( 0 ); } //获取远程机器名 hostent * remoteHostent = (hostent*)malloc( sizeof( hostent )); int nRemoteAddr = inet_addr( argv[1] ); remoteHostent = gethostbyaddr( (char*)&nRemoteAddr,sizeof( in_addr ), AF_INET ); if ( remoteHostent ) printf( "HostName : %s\n",remoteHostent->h_name ); else printf( "gethostbyaddr Error:%d\n", GetLastError()); //发送ARP查询包获得远程MAC地址 unsigned char macAddress[6]; ULONG macAddLen = 6; iRet = SendARP( nRemoteAddr, NULL, (PULONG)&macAddress,&macAddLen ); if ( iRet == NO_ERROR ) { printf( "MacAddress: " ); for( int i =0; i<6; i++ ) { printf( "%.2x", macAddress ); if ( i<5 ) printf( "-" ); } } else printf( "SendARP Error:%d\n", GetLastError() ); printf( "\n" ); }
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2