获取主机MAC IP Mask Gateway的信息

来源:互联网 发布:民王 知乎 编辑:程序博客网 时间:2024/05/16 06:49
////////////////////////////////////////////////// LocalHostInfo.cpp文件#include <windows.h>#include <stdio.h>#include "Iphlpapi.h"#pragma comment(lib, "Iphlpapi.lib")#pragma comment(lib, "WS2_32.lib")/////////////////////////////////////////// 全局数据u_charg_ucLocalMac[6];// 本地MAC地址DWORDg_dwGatewayIP;// 网关IP地址DWORDg_dwLocalIP;// 本地IP地址DWORDg_dwMask;// 子网掩码BOOL GetGlobalData(){PIP_ADAPTER_INFO pAdapterInfo = NULL;ULONG ulLen = 0;// 为适配器结构申请内存::GetAdaptersInfo(pAdapterInfo,&ulLen);pAdapterInfo = (PIP_ADAPTER_INFO)::GlobalAlloc(GPTR, ulLen);// 取得本地适配器结构信息if(::GetAdaptersInfo(pAdapterInfo,&ulLen) ==  ERROR_SUCCESS){if(pAdapterInfo != NULL){memcpy(g_ucLocalMac, pAdapterInfo->Address, 6);g_dwGatewayIP = ::inet_addr(pAdapterInfo->GatewayList.IpAddress.String);g_dwLocalIP = ::inet_addr(pAdapterInfo->IpAddressList.IpAddress.String);g_dwMask = ::inet_addr(pAdapterInfo->IpAddressList.IpMask.String);}}printf(" \n -------------------- 本地主机信息 -----------------------\n\n");in_addr in;in.S_un.S_addr = g_dwLocalIP;printf("      IP Address : %s \n", ::inet_ntoa(in));in.S_un.S_addr = g_dwMask;printf("     Subnet Mask : %s \n", ::inet_ntoa(in));in.S_un.S_addr = g_dwGatewayIP;printf(" Default Gateway : %s \n", ::inet_ntoa(in));u_char *p = g_ucLocalMac;printf("     MAC Address : %02X-%02X-%02X-%02X-%02X-%02X \n", p[0], p[1], p[2], p[3], p[4], p[5]);printf(" \n \n ");return TRUE;}int main(){// 获取全局数据GetGlobalData();getchar();return 0;}


原创粉丝点击