批量获取远程计算机MAC
生活随笔
收集整理的這篇文章主要介紹了
批量获取远程计算机MAC
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
功能及用途
用于采集局域網(wǎng)所有計算機(jī)信息主要是mac地址,ip地址,主機(jī)名。
格式化讀寫函數(shù)
fprintf()格式化寫
fscanf()格式化讀
使用說明
IP文件:ip.txt
IP文件格式:ip+空格+其他信息
IP文件和該執(zhí)行文件放同一目錄
代碼
// ALLMAC.cpp : 定義控制臺應(yīng)用程序的入口點(diǎn)。 //#include "stdafx.h" #include <Windows.h> #include <WinBase.h> #include <WinSock2.h> #include <IPHlpApi.h>#pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"IPHlpApi.lib") #pragma comment(lib,"Kernel32.lib.")int _tmain(int argc, _TCHAR* argv[]) {CHAR szFilePath[MAX_PATH];/*GetModuleFileName(NULL,szFilePath,MAX_PATH);*/GetCurrentDirectory(MAX_PATH,szFilePath);//printf(szFilePath);CHAR macAddr[13]={0};ULONG Mac[2];ULONG MacLen;memset (Mac, 0xff, sizeof (Mac));MacLen = 6;char ip[16],info[100];FILE *fp;FILE *fpw;char szPath[MAX_PATH];sprintf(szPath,"%s\\%s",szFilePath,"ip.txt");fp=fopen(szPath,"r");sprintf(szPath,"%s\\%s",szFilePath,"mac.txt");fpw=fopen(szPath,"w");char szMacAddr[20];while(!feof(fp)){fscanf(fp,"%s %s",ip,info);BYTE MacAddr[6];IPAddr ipAddr=inet_addr(ip);DWORD hr = SendARP (ipAddr, 0, Mac, &MacLen);if(hr==0){PBYTE pbMac = (PBYTE)Mac;for (ULONG i=0;i<MacLen;i++){MacAddr[i]=pbMac[i];}char szMacAddr[18];sprintf(szMacAddr,"%02X-%02X-%02X-%02X-%02X-%02X",MacAddr[0],MacAddr[1],MacAddr[2],MacAddr[3],MacAddr[4],MacAddr[5]);printf("IP:%s\tINFO:%s\tMAC:%s\n",ip,info,szMacAddr);fprintf(fpw,"IP:%s\tMAC:%s\t備注:%s\n",ip,szMacAddr,info);}}fclose(fp);fclose(fpw);getchar();return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/shya/archive/2012/02/01/2334494.html
總結(jié)
以上是生活随笔為你收集整理的批量获取远程计算机MAC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坚持自研指令集 龙芯:x86、ARM及R
- 下一篇: 安卓版Apple Watch来了!OPP