Windowsta sistem fonksiyonlari ile MAC adresini öğrenme

macadress
windows
c++

#1

Geçenlerde unique id gereksinimi için lazım olmuştu, buraya da koyalım ki ileri de lazım olursa tekrar kullanırız :slight_smile:

// how to get macadress on windows with system calls
//iyasar

#include "stdafx.h"
#include <string>
#include <iostream>
#include <thread>
#include <chrono>


#include <Windows.h>
#include <iphlpapi.h>
#include <TCHAR.h>
#include <pdh.h>
#include <tlhelp32.h>

#pragma comment(lib, "IPHLPAPI.lib")

using namespace std;


bool getMacID(string &macID)
{
	char data[4096];
	ZeroMemory(data, 4096);
	unsigned long  len = 4000;
	PIP_ADAPTER_INFO pinfo = (PIP_ADAPTER_INFO)data;
	char sbuf[20];

	DWORD ret = GetAdaptersInfo(pinfo, &len);
	if (ret != ERROR_SUCCESS) {
		cout << "error in GetAdaptersInfo";
		return false;
	}

	for (int k = 0; k < 5; k++) {
		snprintf(sbuf, 20, "%02X-", pinfo->Address[k]);
		macID += sbuf;
	}

	snprintf(sbuf, 20, "%02X", pinfo->Address[5]);
	macID += sbuf;


	return true;
}

int main()
{
	string macID;
	if (getMacID(macID))
		cout << macID << endl;
	

	getchar(); // sadece ekranda yazilani gorelim diye ozel bir amaci yok!

    return 0;
}