wince6.0, No IPv4 adapter found.

huilai 2016-03-08 04:16:45
输入命令检索仿真器的IP地址,s ipconfig /d,调试输出窗口中提示:No IPv4 adapter found。请教大家,谢谢。
...全文
513 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
91program 2016-03-08
  • 打赏
  • 举报
回复
你所用的方法,偶没有试过。你可以试试我的方法,使用代码来获取IP。详细的代码如下:

#ifndef _GET_NETWORK_INFO_H_
#define _GET_NETWORK_INFO_H_

#include "Iphlpapi.h"

/* 执行输出以下结果: 
Adapter Name: {1458CBA9-9466-45B1-8B3A-1FD60D334A77}
Adapter Desc: Realtek PCIe GBE Family Controller - 数据包计划程序微型端口
Adapter Address: 74-27-EA-EF-A4-5F
IP Address: 192.168.3.97
IP Mask: 255.255.255.0
Gateway: 192.168.3.254
DHCP Enabled: No
Have Wins: No
*/
typedef struct One_Adapter_Info_T
{
	char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
	char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
	UINT AddressLength;
	BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
	IP_ADDR_STRING IpAddressList;
	IP_ADDR_STRING GatewayList;
}One_Adapter_Info, *pOne_Adapter_Info;

BOOL GetNetworkInfo(pOne_Adapter_Info pOneAdapterInfo,char *pcOneDesc,CString &csIPList);

#ifndef _WIN32_WCE
BOOL GetNetworkInfoTemp(pOne_Adapter_Info pOneAdapterInfo,char *pcOneDesc);
#endif

#endif

#include "stdafx.h"

#include "GetNetworkInfo.h"

#pragma comment(lib,"Iphlpapi.lib")

BOOL GetNetworkInfo(pOne_Adapter_Info pOneAdapterInfo,char *pcOneDesc,CString &csIPList)
{
	PIP_ADAPTER_INFO pAdapterInfos = NULL;
	DWORD dwRetVal = 0;
	ULONG unOutBufLen = 0;

	csIPList.Empty();

	pAdapterInfos = (PIP_ADAPTER_INFO)malloc(sizeof(IP_ADAPTER_INFO));
	unOutBufLen = sizeof(IP_ADAPTER_INFO);

	// 第一次调用 GetAdapterInfo 获取 ulOutBufLen 大小
	if(ERROR_BUFFER_OVERFLOW == GetAdaptersInfo(pAdapterInfos,&unOutBufLen))
	{
		free(pAdapterInfos);
		pAdapterInfos = (IP_ADAPTER_INFO *)malloc(unOutBufLen);
	}

	dwRetVal = GetAdaptersInfo(pAdapterInfos,&unOutBufLen);
	if(NO_ERROR == dwRetVal)
	{
		PIP_ADAPTER_INFO pAdapterTmp = pAdapterInfos;		// 遍历指针
		while(pAdapterTmp)
		{
			if(NULL != pcOneDesc && NULL != pOneAdapterInfo)
			{
				if(csIPList.IsEmpty())
				{
					csIPList = CString(pAdapterTmp->IpAddressList.IpAddress.String);
				}
				else
				{
					csIPList += CString("\\") +  CString(pAdapterTmp->IpAddressList.IpAddress.String);
				}
				if(0 == strncmp(pcOneDesc,pAdapterTmp->Description,strlen(pcOneDesc)))
				{
					ZeroMemory(pOneAdapterInfo,sizeof(One_Adapter_Info));

					strcpy(pOneAdapterInfo->AdapterName,pAdapterTmp->AdapterName);
					strcpy(pOneAdapterInfo->Description,pAdapterTmp->Description);
					pOneAdapterInfo->AddressLength = pAdapterTmp->AddressLength;
					memcpy(pOneAdapterInfo->Address,pAdapterTmp->Address,sizeof(char) * (MAX_ADAPTER_ADDRESS_LENGTH));
					pOneAdapterInfo->IpAddressList = pAdapterTmp->IpAddressList;
					pOneAdapterInfo->GatewayList = pAdapterTmp->GatewayList;

					free(pAdapterInfos);

					csIPList.Empty();
					csIPList = CString(pOneAdapterInfo->IpAddressList.IpAddress.String);

					return TRUE;
				}
			}

#ifndef _WIN32_WCE
			if(pAdapterTmp->DhcpEnabled)
			{
				errno_t error;
				struct tm newTime;
				char cBuffer[32];

				error = localtime_s(&newTime,&pAdapterTmp->LeaseObtained); 
				if(error)
				{
				}
				else
				{
					error = asctime_s(cBuffer, 32, &newTime);
					if(!error)
					{
						// TRACE(L"%s", cBuffer);
					}
				}

				error = localtime_s(&newTime,&pAdapterTmp->LeaseExpires); 
				if(!error)
				{
					error = asctime_s(cBuffer,32,&newTime);
					if(!error)
					{
						// TRACE(L"%s", cBuffer);
					}
				}
			}

			if(pAdapterTmp->HaveWins)
			{
				// TRACE(L"Primary Wins Server: %s\n",pAdapterTmp->PrimaryWinsServer.IpAddress.String);
				// TRACE(L"Secondary Wins Server: %s\n",pAdapterTmp->SecondaryWinsServer.IpAddress.String);
			}
#endif

			pAdapterTmp = pAdapterTmp->Next;
		}

		free(pAdapterInfos);

		return FALSE;
	}

	return FALSE;
}

/* PC 上测试用*/
#ifndef _WIN32_WCE
BOOL GetNetworkInfoTemp(pOne_Adapter_Info pOneAdapterInfo,char *pcOneDesc)
{
	PIP_ADAPTER_INFO pAdapterInfo;
	PIP_ADAPTER_INFO pAdapter = NULL;
	DWORD dwRetVal = 0;

	pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
	ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);

	// Make an initial call to GetAdaptersInfo to get
	// the necessary size into the ulOutBufLen variable
	if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
		free(pAdapterInfo);
		pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen); 
		if (pAdapterInfo == NULL) {
			TRACE("Error allocating memory needed to call GetAdaptersinfo\n");
			return 1;
		}

		if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
		{
			pAdapter = pAdapterInfo;
			while (pAdapter)
			{
				if(NULL != pcOneDesc && NULL != pOneAdapterInfo)
				{
					if(0 == strncmp(pcOneDesc,pAdapter->Description,strlen(pcOneDesc)))
					{
						ZeroMemory(pOneAdapterInfo,sizeof(One_Adapter_Info));

						strcpy(pOneAdapterInfo->AdapterName,pAdapter->AdapterName);
						strcpy(pOneAdapterInfo->Description,pAdapter->Description);
						pOneAdapterInfo->AddressLength = pAdapter->AddressLength;
						memcpy(pOneAdapterInfo->Address,pAdapter->Address,sizeof(char) * (MAX_ADAPTER_ADDRESS_LENGTH));
						pOneAdapterInfo->IpAddressList = pAdapter->IpAddressList;
						pOneAdapterInfo->GatewayList = pAdapter->GatewayList;
					}
				}

				TRACE("\tAdapter Name: \t%s\n", pAdapter->AdapterName);
				TRACE("\tAdapter Desc: \t%s\n", pAdapter->Description);
				TRACE("\tAdapter Addr: \t");
				for (UINT i = 0; i < pAdapter->AddressLength; i++) {
					if (i == (pAdapter->AddressLength - 1))
						TRACE("%.2X\n",(int)pAdapter->Address[i]);
					else
						TRACE("%.2X-",(int)pAdapter->Address[i]);
				}
				TRACE("\tIP Address: \t%s\n", pAdapter->IpAddressList.IpAddress.String);
				TRACE("\tIP Mask: \t%s\n", pAdapter->IpAddressList.IpMask.String);

				TRACE("\tGateway: \t%s\n", pAdapter->GatewayList.IpAddress.String);
				TRACE("\t***\n");

				if (pAdapter->DhcpEnabled)
				{
				}
				pAdapter = pAdapter->Next;
			}
			free(pAdapterInfo);
		}
		return TRUE;
	}

	return FALSE;
}
#endif

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧