我们在进行网络编程的时候,经常需要获取本地主机,网卡的信息,我们代码实现如下。
#include "../common/initsock.h"
#include <windows.h>
#include <stdio.h>
#include <Iphlpapi.h>
#include "protoutils.h"
#include "ProtoPacket.h"
#pragma comment(lib, "Iphlpapi.lib")
DWORD WINAPI SendThread(LPVOID lpParam);
BOOL GetGlobalData();
/
// 全局数据
u_char g_ucLocalMac[6]; // 本地MAC地址
DWORD g_dwGatewayIP; // 网关IP地址
DWORD g_dwLocalIP; // 本地IP地址
DWORD g_dwMask; // 子网掩码
CInitSock theSock;
int main()
{
// 获取全局数据
GetGlobalData();
// 启动服务
if(!ProtoStartService())
{
printf(" ProtoStartService() failed %d \n", ::GetLastError());
return -1;
}
// 打开控制设备对象
HANDLE hControlDevice = ProtoOpenControlDevice();
if(hControlDevice == INVALID_HANDLE_VALUE)
{
printf(" ProtoOpenControlDevice() failed() %d \n", ::GetLastError());
ProtoStopService();
return -1;