批量获取远程计算机MAC
功能及用途
用于采集局域网所有计算机信息主要是mac地址,ip地址,主机名。
格式化读写函数
fprintf()格式化写
fscanf()格式化读
使用说明
IP文件:ip.txt
IP文件格式:ip+空格+其他信息
IP文件和该执行文件放同一目录
代码
// ALLMAC.cpp : 定义控制台应用程序的入口点。 // #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; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?