批量获取远程计算机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;
}

 

posted @   哆啦无梦  阅读(424)  评论(0编辑  收藏  举报
编辑推荐:
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
阅读排行:
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?
点击右上角即可分享
微信分享提示