『windows』获得MAC地址的C语言实现
2013-12-02 16:12
295 查看
原文地址:获得MAC地址的C语言实现
#include <winsock2.h> #include <stdio.h> #include <stdlib.h> #include <httpext.h> #include <windef.h> #include <Nb30.h> #pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"netapi32.lib") void CheckIP(void) { WSADATA wsaData; char name[155]; char *ip; PHOSTENT hostinfo; if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) { if( gethostname ( name, sizeof(name)) == 0) { if((hostinfo = gethostbyname(name)) != NULL) { ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list); printf(" IP地址: %s ",ip); } } WSACleanup( ); } } int getMAC(char * mac) { NCB ncb; // Network control block typedef struct _ASTAT_ { ADAPTER_STATUS adapt; NAME_BUFFER NameBuff [30]; }ASTAT, *PASTAT; ASTAT Adapter; typedef struct _LANA_ENUM { UCHAR length; UCHAR lana[MAX_LANA]; }LANA_ENUM; LANA_ENUM lana_enum; UCHAR uRetCode; memset(&ncb, 0, sizeof(ncb)); memset(&lana_enum, 0, sizeof(lana_enum)); ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (unsigned char *)&lana_enum; ncb.ncb_length = sizeof(LANA_ENUM); uRetCode = Netbios(&ncb); if(uRetCode != NRC_GOODRET) return uRetCode; for(int lana=0; lana<lana_enum.length; lana++) { ncb.ncb_command = NCBRESET; ncb.ncb_lana_num = lana_enum.lana[lana]; uRetCode = Netbios(&ncb); if(uRetCode == NRC_GOODRET) break; } if(uRetCode != NRC_GOODRET) return uRetCode; memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBASTAT; ncb.ncb_lana_num = lana_enum.lana[0]; strcpy((char*)ncb.ncb_callname, "*"); ncb.ncb_buffer = (unsigned char *)&Adapter; ncb.ncb_length = sizeof(Adapter); uRetCode = Netbios(&ncb); if(uRetCode != NRC_GOODRET) return uRetCode; sprintf(mac,"%02X-%02X-%02X-%02X-%02X-%02X", Adapter.adapt.adapter_address[0], Adapter.adapt.adapter_address[1], Adapter.adapt.adapter_address[2], Adapter.adapt.adapter_address[3], Adapter.adapt.adapter_address[4], Adapter.adapt.adapter_address[5] ); return 0; } int main(void) { CheckIP(); char mac[200]; getMAC(mac); printf(" mac地址 : %s ",mac); return 0; }
相关文章推荐
- C语言实现Windows下获取IP和MAC地址。
- windows和linux环境中分别如何用C语言获得本机IP地址?
- C++获得本机所有网卡的IP和MAC地址信息的实现方法
- Myeclipse2013 官方下载 Windows Mac Linux 三个版本下载链接地址
- iOS上获得MAC地址
- android studio windows Mac linux下载地址
- 获得客房端的MAC(Media Access Control)地址
- windows下用C语言实现服务程序编写与安装
- java简单的获取windows系统网卡mac地址
- 分享:PHP获取MAC地址的实现代码
- 获得ip和mac地址
- Windows下查看局域网内某台计算机的MAC地址
- 获得MAC地址的四个方法
- 用纯Java代码根据IP获取windows和linux的MAC物理地址
- 获得ip和mac地址
- C#获得本机MAC地址 - [Coding](转)
- C语言中如何清空键盘缓冲区,Linux和Windows下完美实现
- windows机器启动,自动绑定mac 地址[防arp]