Windows獲得MAC地址

來源:互聯網
上載者:User

標籤:bytes   script   std   cpp   set   while   html   har   include   

Windows獲得MAC地址,StringBuffer是一個自訂的字串類,可參考http://www.cnblogs.com/hatsusakana/p/7866387.html

#include <stdio.h>#include <stdlib.h>#include <windows.h>#include <windowsx.h>extern "C"{    #include "StringBuffer.h"}typedef struct _Mac{    char MacName[256];    char MacAdd[256];}Mac;int WindowsCommand(StringBuffer *sb,char *cmd){    SECURITY_ATTRIBUTES sa;     HANDLE hRead,hWrite;    sa.nLength = sizeof(SECURITY_ATTRIBUTES);     sa.lpSecurityDescriptor = NULL;     sa.bInheritHandle = TRUE;     if (!CreatePipe(&hRead,&hWrite,&sa,0)) return 0;     char command[1024];    ZeroMemory(command,sizeof(command));    strcpy(command,TEXT("Cmd.exe /C "));    strcat(command,cmd);    STARTUPINFO si;    PROCESS_INFORMATION pi;    si.cb = sizeof(STARTUPINFO);    GetStartupInfo(&si);    si.hStdError = hWrite;    si.hStdOutput = hWrite;    si.wShowWindow = SW_HIDE;    si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;    if (!CreateProcess(NULL,command,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))    {        CloseHandle(hWrite);        CloseHandle(hRead);        return 0;    }    CloseHandle(hWrite);    char buffer[2048],*result = NULL;    ZeroMemory(buffer,sizeof(buffer));    DWORD bytesRead;    while(ReadFile(hRead,buffer,sizeof(buffer),&bytesRead,NULL) && bytesRead>0)     {        StringBufferAddEx(sb,buffer,bytesRead);        ZeroMemory(buffer,sizeof(buffer));    }    CloseHandle(hRead);    return 1;}int main(int argc,char *argv[]){    StringBuffer sb;    StringBufferInit(&sb);    WindowsCommand(&sb,"ipconfig /all");    char *buf = StringBufferToString(&sb);    StringBufferFree(&sb);    char *ms = strstr(buf,"描述");    while(ms != NULL)    {        Mac mac;        memset(&mac,0,sizeof(Mac));        sscanf(ms,"%*[^:]%*[^ ]%[^\n]",mac.MacName);        ms = strstr(ms,"物理地址");        if(ms) sscanf(ms,"%*[^:]%*[^ ]%[^\n]",mac.MacAdd);        printf("%s\n%s\n\n",mac.MacName+1,mac.MacAdd+1);        ms = strstr(ms,"描述");    }    return 1;}

 

Windows獲得MAC地址

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.