GetAdaptersInfo获取本机信息
2016-05-15 22:46
357 查看
#include <windows.h> #include <stdio.h> #include "Iphlpapi.h" #pragma comment(lib, "Iphlpapi.lib") #pragma comment(lib, "WS2_32.lib") ///////////////////////////////////////// // 全局数据 u_char g_ucLocalMac[6]; // 本地MAC地址 DWORD g_dwGatewayIP; // 网关IP地址 DWORD g_dwLocalIP; // 本地IP地址 DWORD g_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; }
相关文章推荐
- 关于http和serverlet实现服务器和客户端的交互
- 如果你遇到,在IntelliJ IDEA里Ctrl+Alt+方向键用不了
- 20145129 《Java程序设计》项目开发简介
- 第二章App框架设计与重构
- uva12325
- 深入芯片内部,理解去耦电容的作用
- LeetCode 18 4Sum
- 2016风云杯大学生信安大赛 WriteUp
- 网站优化还是要渐入佳境
- ThinkPHP模板替换
- 梦断代码阅读笔记01
- 解决eclipse中svn插件总是提示输入密码的问题
- struts,ajax,json的结合老出错
- IDEA无法更新
- 友元类
- Number plate recognition with Tensorflow
- BZOJ1501: [NOI2005]智慧珠游戏
- 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)
- 灰帽子Python 学习记录 4
- zoj3123题解