如何在程序中获得网络连接的名称,如:本地连接、本地连接1、本地连接2 如何在程序中获得网络连接的名称,如:本地连接、本地连接1、本地连接2 另外谁有在win2k下不需要重起改ip地址的程序 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ULONG NTEContext = 0; ULONG NTEInstance; IPAddr NewIP; IPAddr NewMask; NewIP = inet_addr(NewIPStr); NewMask = inet_addr(NewMaskStr);AddIPAddress(NewIP, NewMask, Index, &NTEContext, &NTEInstance)index可以由下面获得PIP_ADAPTER_INFO pAdapterInfo,pAdapt;DWORD dwAdapterInfoSize=0;PIP_ADDR_STRING pAddrStr;DWORD dwRet=0;CString strInfo,strTmp;dwRet=GetAdaptersInfo(NULL,&dwAdapterInfoSize);pAdapterInfo = (PIP_ADAPTER_INFO) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY, dwAdapterInfoSize);if(pAdapterInfo!=NULL){ dwRet=GetAdaptersInfo(pAdapterInfo, &dwAdapterInfoSize);}if(dwRet==ERROR_SUCCESS){ pAdapt = pAdapterInfo; while (pAdapt) { //mac地址 for (UINT i=0; i<pAdapt->AddressLength; i++) { if (i == (pAdapt->AddressLength - 1)) { strTmp.Format(_T("%.2X "),pAdapt->Address[i]); strInfo+=strTmp; } else { strTmp.Format(_T("%.2X- "),pAdapt->Address[i]); strInfo+=strTmp; } } //网卡的GUID名称 strTmp.Format(_T("\n%s"),pAdapt->AdapterName); strInfo+=strTmp; //网卡的描述,设备管理器显示的名称 strTmp.Format(_T("\n%s"),pAdapt->Description); strInfo+=strTmp; pAddrStr = &(pAdapt->IpAddressList); while (pAddrStr) { strTmp.Format(_T("索引:%d\n"),pAdapt->Index); strInfo+=strTmp; strTmp.Format(_T("IP地址:%s\n"),pAddrStr->IpAddress.String); strInfo+=strTmp; strTmp.Format(_T("子网掩码:%s\n"),pAddrStr->IpMask.String); strInfo+=strTmp; pAddrStr = pAddrStr->Next; } AfxMessageBox(strInfo); strInfo.Empty(); pAdapt = pAdapt->Next; }HeapFree(GetProcessHeap(),HEAP_ZERO_MEMORY,pAdapterInfo);包含的头文件iphlpapi.h,连接库Iphlpapi.h用多字节编译 上面的程序不能得到网络连接的名称,下面的程序补上,包含的头文件iphlpapi.h,Mprapi.h连接库Iphlpapi.lib,Mprapi.lib。要server版本的windows要用unicode编译,否则乱码;没有进行出错处理HANDLE hMprConfig;DWORD dwRet=0;CString strInfo,strTmp;PIP_INTERFACE_INFO plfTable=NULL;IP_ADAPTER_INDEX_MAP AdaptMap;DWORD dwBufferSize=0;TCHAR szFriendName[256];DWORD tchSize=sizeof(TCHAR)*256;ZeroMemory(&szFriendName,tchSize);dwRet=MprConfigServerConnect (NULL,&hMprConfig);dwRet=GetInterfaceInfo(NULL,&dwBufferSize);if(dwRet==ERROR_INSUFFICIENT_BUFFER){ plfTable=(PIP_INTERFACE_INFO)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwBufferSize); GetInterfaceInfo(plfTable,&dwBufferSize);} strInfo.Empty(); for(UINT i=0;i<plfTable->NumAdapters;i++) { AdaptMap=plfTable->Adapter[i]; dwRet=MprConfigGetFriendlyName(hMprConfig,AdaptMap.Name,(PWCHAR)szFriendName,tchSize); strTmp.Format(_T("Index:%u\nName:%s\n"),AdaptMap.Index,szFriendName); strInfo+=strTmp; } AfxMessageBox(strInfo); HeapFree(GetProcessHeap(),HEAP_ZERO_MEMORY,plfTable);得到的index也可以进行AddIPAddress,具体如上 一个数据在debug正常而release不正常的问题 CListctrl子控件Cstatic遮住Clistctrl最后一个记录问题 骨折在家, 求祝福 关于MMX指令优化代码 CFILE 文件保存问题 一个记录集的问题,急! 急,请教高手。谢谢 win32制作动态库的文章或示例代码。 加急!!!送分100,在线等候... 内存数组里的数据,怎么保存为JPG图像? 有没有关于c/c++各种库的介绍文章。 什么叫运行期库? 关于位图MENU的问题???
ULONG NTEInstance;
IPAddr NewIP;
IPAddr NewMask;
NewIP = inet_addr(NewIPStr);
NewMask = inet_addr(NewMaskStr);
AddIPAddress(NewIP, NewMask, Index, &NTEContext, &NTEInstance)index可以由下面获得
PIP_ADAPTER_INFO pAdapterInfo,pAdapt;
DWORD dwAdapterInfoSize=0;
PIP_ADDR_STRING pAddrStr;
DWORD dwRet=0;
CString strInfo,strTmp;
dwRet=GetAdaptersInfo(NULL,&dwAdapterInfoSize);pAdapterInfo = (PIP_ADAPTER_INFO) HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY, dwAdapterInfoSize);if(pAdapterInfo!=NULL)
{
dwRet=GetAdaptersInfo(pAdapterInfo, &dwAdapterInfoSize);
}if(dwRet==ERROR_SUCCESS)
{
pAdapt = pAdapterInfo; while (pAdapt)
{
//mac地址
for (UINT i=0; i<pAdapt->AddressLength; i++)
{
if (i == (pAdapt->AddressLength - 1))
{
strTmp.Format(_T("%.2X "),pAdapt->Address[i]);
strInfo+=strTmp;
}
else
{
strTmp.Format(_T("%.2X- "),pAdapt->Address[i]);
strInfo+=strTmp;
}
}
//网卡的GUID名称
strTmp.Format(_T("\n%s"),pAdapt->AdapterName);
strInfo+=strTmp; //网卡的描述,设备管理器显示的名称
strTmp.Format(_T("\n%s"),pAdapt->Description);
strInfo+=strTmp; pAddrStr = &(pAdapt->IpAddressList);
while (pAddrStr)
{
strTmp.Format(_T("索引:%d\n"),pAdapt->Index);
strInfo+=strTmp; strTmp.Format(_T("IP地址:%s\n"),pAddrStr->IpAddress.String);
strInfo+=strTmp; strTmp.Format(_T("子网掩码:%s\n"),pAddrStr->IpMask.String);
strInfo+=strTmp;
pAddrStr = pAddrStr->Next;
}
AfxMessageBox(strInfo);
strInfo.Empty();
pAdapt = pAdapt->Next;
}HeapFree(GetProcessHeap(),HEAP_ZERO_MEMORY,pAdapterInfo);包含的头文件iphlpapi.h,连接库Iphlpapi.h
用多字节编译
要用unicode编译,否则乱码;没有进行出错处理
HANDLE hMprConfig;
DWORD dwRet=0;
CString strInfo,strTmp;
PIP_INTERFACE_INFO plfTable=NULL;
IP_ADAPTER_INDEX_MAP AdaptMap;
DWORD dwBufferSize=0;
TCHAR szFriendName[256];
DWORD tchSize=sizeof(TCHAR)*256;
ZeroMemory(&szFriendName,tchSize);
dwRet=MprConfigServerConnect (NULL,&hMprConfig);
dwRet=GetInterfaceInfo(NULL,&dwBufferSize);if(dwRet==ERROR_INSUFFICIENT_BUFFER)
{
plfTable=(PIP_INTERFACE_INFO)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,dwBufferSize);
GetInterfaceInfo(plfTable,&dwBufferSize);
}
strInfo.Empty();
for(UINT i=0;i<plfTable->NumAdapters;i++)
{
AdaptMap=plfTable->Adapter[i];
dwRet=MprConfigGetFriendlyName(hMprConfig,AdaptMap.Name,(PWCHAR)szFriendName,tchSize);
strTmp.Format(_T("Index:%u\nName:%s\n"),AdaptMap.Index,szFriendName);
strInfo+=strTmp;
}
AfxMessageBox(strInfo);
HeapFree(GetProcessHeap(),HEAP_ZERO_MEMORY,plfTable);得到的index也可以进行AddIPAddress,具体如上