18,356
社区成员
发帖
与我相关
我的任务
分享
//这几个宏定义先放这里
#define ALLOCATE_FROM_PROCESS_HEAP( bytes ) ::HeapAlloc( ::GetProcessHeap(), HEAP_ZERO_MEMORY, bytes )
#define DEALLOCATE_FROM_PROCESS_HEAP( ptr ) if( ptr ) ::HeapFree( ::GetProcessHeap(), 0, ptr )
#define REALLOC_FROM_PROCESS_HEAP( ptr, bytes ) ::HeapReAlloc( ::GetProcessHeap(), HEAP_ZERO_MEMORY, ptr, bytes )
//主要代码在这里
PIP_ADAPTER_INFO pIpInfo = NULL;
ULONG ulSize = 0;
CString strIpAddress;
DWORD dResult = ::GetAdaptersInfo( pIpInfo, &ulSize ); //检测大小
if( ERROR_BUFFER_OVERFLOW == dResult )
{
pIpInfo = ALLOCATE_FROM_PROCESS_HEAP( ulSize ); //申请空间
dResult = ::GetAdaptersInfo( pIpInfo, &ulSize ); //获取数据
}
if( ERROR_SUCCESS == dResult )
{
strIpAddress = pIpInfo->CurrentIpAddress->IpAddress.String; //获取current IP
}
::AfxMessageBox( strIpAddress ); //输出