您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetAdaptersInfo函数代码示例

51自学网 2021-06-01 21:03:37
  C++
这篇教程C++ GetAdaptersInfo函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetAdaptersInfo函数的典型用法代码示例。如果您正苦于以下问题:C++ GetAdaptersInfo函数的具体用法?C++ GetAdaptersInfo怎么用?C++ GetAdaptersInfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetAdaptersInfo函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sizeof

DWORD WINAPI CLuzj_ZTEDlg::GetMacIP(const char *adaptername, char *ip, unsigned char *mac){	PIP_ADAPTER_INFO AdapterInfo = NULL;	DWORD dwBufLen = sizeof(IP_ADAPTER_INFO);	DWORD dwStatus;	AdapterInfo = (PIP_ADAPTER_INFO)malloc(dwBufLen);	if(AdapterInfo == NULL) return -1;	dwStatus = GetAdaptersInfo(AdapterInfo,&dwBufLen);		if(dwStatus == ERROR_BUFFER_OVERFLOW) {		free(AdapterInfo); 		AdapterInfo = (PIP_ADAPTER_INFO)malloc(dwBufLen);		dwStatus = GetAdaptersInfo(AdapterInfo,&dwBufLen);			if(AdapterInfo == NULL) return -1;	}	if(dwStatus != NO_ERROR) {		if(AdapterInfo != NULL) free(AdapterInfo);		return -2;	}			if(ip) memset(ip, 0, 16);		if(mac) memset(mac, 0, 6);	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;		if(adaptername != NULL) {					while(pAdapterInfo) {			if (stricmp(adaptername,pAdapterInfo->AdapterName) == 0) {				if(mac) memcpy(mac, pAdapterInfo->Address, 6);				if(ip) strncpy(ip, pAdapterInfo->IpAddressList.IpAddress.String, 16);				break;			}			pAdapterInfo = pAdapterInfo->Next;		};	}		free(AdapterInfo);	if(pAdapterInfo == NULL) return -3;		return 0;}
开发者ID:NullYing,项目名称:gxgk-zte,代码行数:42,


示例2: main

int main(int argc, char** argv){	WSADATA wsaData;	PIP_ADAPTER_INFO pAdapterInfo = NULL, pAdapter = NULL;	ULONG ulOutBufLen;	u_char p[6];	WSAStartup(MAKEWORD(2,2), &wsaData);	if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {		free(pAdapterInfo);		pAdapterInfo = (PIP_ADAPTER_INFO) malloc(ulOutBufLen);	}	GetAdaptersInfo(pAdapterInfo, &ulOutBufLen);	pAdapter = pAdapterInfo;	while(pAdapter) {		printf("/tAdapter Name: /t%s/n", pAdapter->AdapterName);		printf("/tAdapter Desc: /t%s/n", pAdapter->Description);		memcpy(p, pAdapter->Address, 6);		printf("/tAdapter Addr: /t%02X:%02X:%02X:%02X:%02X:%02X/n",				p[0],p[1],p[2],p[3],p[4],p[5]);		printf("/tIP Addr: /t%s/n", pAdapter->IpAddressList.IpAddress.String);		printf("/tIP Mask: /t%s/n", pAdapter->IpAddressList.IpMask.String);		printf("/tIP Gateway: /t%s/n", pAdapter->GatewayList.IpAddress.String);		if (pAdapter->DhcpEnabled) {			printf("/tDHCP Enable: Yes/n");			printf("/tLease Obtained: %ld/n", pAdapter->LeaseObtained);		} else {			printf("/tDHCP Enable: No/n");		}		if (pAdapter->HaveWins) {			printf("/tHave Wins: Yes/n");			printf("/t/tPrimary Wins Server: /t%s/n", pAdapter->PrimaryWinsServer.IpAddress.String);			printf("/t/tSecondary Wins Server: /t%s/n", pAdapter->SecondaryWinsServer.IpAddress.String);		} else {			printf("/tHave Wins: No/n");		}		pAdapter = pAdapter->Next;	}	return 0;}
开发者ID:geeeqie,项目名称:codes,代码行数:42,


示例3: GetMACaddress

void GetMACaddress(char *mac_address){	IP_ADAPTER_INFO AdapterInfo[16];			// Allocate information for up to 16 NICs	DWORD dwBufLen = sizeof(AdapterInfo);		// Save the memory size of buffer	DWORD dwStatus = GetAdaptersInfo(			// Call GetAdapterInfo		AdapterInfo,							// [out] buffer to receive data		&dwBufLen);								// [in] size of receive data buffer	assert(dwStatus == ERROR_SUCCESS);			// Verify return value is valid, no buffer overflow	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info	sprintf(mac_address,"%02X:%02X:%02X:%02X:%02X:%02X", pAdapterInfo->Address[0],pAdapterInfo->Address[1],pAdapterInfo->Address[2],pAdapterInfo->Address[3],pAdapterInfo->Address[4],pAdapterInfo->Address[5]);}
开发者ID:M45T3Ryu,项目名称:eikasia,代码行数:11,


示例4: getMAC

//////////////////////////////////////////////////////	//Anti Cheat	char* getMAC(){// By Yuri-BR    PIP_ADAPTER_INFO AdapterInfo;    DWORD dwBufLen = sizeof(AdapterInfo);    char *mac_addr = (char*)malloc(17);    AdapterInfo = (IP_ADAPTER_INFO *) malloc(sizeof(IP_ADAPTER_INFO));    if (AdapterInfo == NULL)     {        printf("Error allocating memory needed to call GetAdaptersinfo/n");    }    // Make an initial call to GetAdaptersInfo to get the necessary size into the dwBufLen     variable    if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == ERROR_BUFFER_OVERFLOW)     {        AdapterInfo = (IP_ADAPTER_INFO *) malloc(dwBufLen);        if (AdapterInfo == NULL)         {             printf("Error allocating memory needed to call GetAdaptersinfo/n");        }     }    if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == NO_ERROR)     {        PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info        do         {            sprintf(mac_addr, "%02X:%02X:%02X:%02X:%02X:%02X", // By Yuri-BR            pAdapterInfo->Address[0], pAdapterInfo->Address[1],            pAdapterInfo->Address[2], pAdapterInfo->Address[3],            pAdapterInfo->Address[4], pAdapterInfo->Address[5]);            return mac_addr;            printf("/n");            pAdapterInfo = pAdapterInfo->Next;                }        while(pAdapterInfo);                                }        free(AdapterInfo);}
开发者ID:Mateuus,项目名称:newundead,代码行数:43,


示例5: udp_join_multicast_group_with_all_ip

static TinyRet udp_join_multicast_group_with_all_ip(int fd, const char *group){    IP_ADAPTER_INFO * pNextAdapter = NULL;    IP_ADAPTER_INFO * ipAdaptersInfo = NULL;    ULONG infolen = sizeof(IP_ADAPTER_INFO);    ipAdaptersInfo = (IP_ADAPTER_INFO *)tiny_malloc(infolen);    if (GetAdaptersInfo(ipAdaptersInfo, &infolen) == ERROR_BUFFER_OVERFLOW)    {        tiny_free(ipAdaptersInfo);        ipAdaptersInfo = (IP_ADAPTER_INFO *)tiny_malloc(infolen);    }    if (GetAdaptersInfo(ipAdaptersInfo, &infolen))    {        tiny_free(ipAdaptersInfo);        return TINY_RET_E_INTERNAL;    }    for (pNextAdapter = ipAdaptersInfo; pNextAdapter; pNextAdapter = pNextAdapter->Next)    {        IP_ADDR_STRING *pNextIp = NULL;        for (pNextIp = &(pNextAdapter->IpAddressList); pNextIp; pNextIp = pNextIp->Next)        {            unsigned long ip = inet_addr(pNextIp->IpAddress.String);            if (ip == 0)            {                break;            }            LOG_D(TAG, "join MultiGroup ip: %s", pNextIp->IpAddress.String);            udp_join_multicast_group_with_ip(fd, group, ip);        }    }    tiny_free(ipAdaptersInfo);    return TINY_RET_OK;}
开发者ID:jxfengzi,项目名称:UpnpLan,代码行数:41,


示例6: STDMETHODIMP_

// 是否存在网关STDMETHODIMP_(BOOL) CStatistic::IsNetGatewayExists(void){    PIP_ADAPTER_INFO pAdapterInfo;    PIP_ADAPTER_INFO pAdapter = NULL;    BOOL bExists = FALSE;    DWORD dwRetVal = 0;    ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);    pAdapterInfo = (IP_ADAPTER_INFO *) malloc(ulOutBufLen);    if(pAdapterInfo)    {        dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen);        if(dwRetVal == ERROR_BUFFER_OVERFLOW )        {            free(pAdapterInfo);            pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);            if(pAdapterInfo)                dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen);        }        if( dwRetVal == NO_ERROR)        {            pAdapter = pAdapterInfo;            while (pAdapter)            {                if(pAdapter->GatewayList.IpAddress.String[0])                {                    bExists = TRUE;                    break;                }                pAdapter = pAdapter->Next;            }        }        free(pAdapterInfo);    }    return bExists;}
开发者ID:N2oBeef,项目名称:vc_scan,代码行数:42,


示例7: malloc

char *macAddress(void){	IP_ADAPTER_INFO *adapterInfo;	ULONG adapterInfoSize = 0;	if (GetAdaptersInfo(NULL, &adapterInfoSize) != ERROR_SUCCESS)	{		adapterInfo = (IP_ADAPTER_INFO *) malloc(adapterInfoSize);	}	if (GetAdaptersInfo(adapterInfo, &adapterInfoSize) != ERROR_SUCCESS)	{		return NULL;	}	{		char *mac = String_asHex(adapterInfo->Address, adapterInfo->AddressLength);		free(adapterInfo);		return mac;	}}
开发者ID:cdcarter,项目名称:io,代码行数:21,


示例8: getAdaptersInfo

int getAdaptersInfo(){        char MacAddressStr[256]; //mac address converted to a string        char MacOneByteStr[10]; //used to hold one byte of mac address        int retval = 0; //return -1 if no adapters found        if (isIPHLPAvail())  //inits iphlpapi and returns true if dll loaded        {                //just return count if we already did this before                if (AdapterCount)                        return AdapterCount;                IP_ADAPTER_INFO  *pAdapterInfo; //points to buffer hold linked list adapter info                DWORD dwSize = (sizeof(IP_ADAPTER_INFO) * MAX_ADAPTERS) + sizeof(DWORD); //size for lots of adapters                char *buffer = new char[dwSize];  //allocate space for lots of adapters                if (buffer)                {                        pAdapterInfo = (IP_ADAPTER_INFO *)buffer;  //point to buffer                        if (GetAdaptersInfo(                                pAdapterInfo,  // buffer for mapping table                                &dwSize) == NO_ERROR)                     // sort the table                        {                                while (pAdapterInfo)                                {                                        strcpy(adapters[AdapterCount].AdapterName, pAdapterInfo->Description);                                        strcpy(adapters[AdapterCount].IpAddress, (const char *)pAdapterInfo->IpAddressList.IpAddress.String);                                        //build mac address as a string                                        *MacAddressStr = '/0';                                        for (unsigned int loop = 0; loop < pAdapterInfo->AddressLength; loop++)                                        {                                                if (strlen(MacAddressStr))                                                        strcat(MacAddressStr,"-");                                                sprintf(MacOneByteStr,"%02X",pAdapterInfo->Address[loop]);                                                strcat(MacAddressStr,MacOneByteStr);                                        }                                        strcpy((char *)adapters[AdapterCount].MacAddress, MacAddressStr);                                        AdapterCount++;                                        pAdapterInfo = pAdapterInfo->Next;                                }                                retval = AdapterCount;                        }                        delete [] buffer;                }        }        return retval;}
开发者ID:ATHLSolutions,项目名称:sipxecs,代码行数:52,


示例9: GetAdaptersInfo

const char* wyDevice::getDeviceId() {	// Get the buffer length required for IP_ADAPTER_INFO.	ULONG bufLen = 0;	BYTE* buffer = 0;	if(GetAdaptersInfo(0, &bufLen) == ERROR_BUFFER_OVERFLOW) {		// Now the BufferLength contain the required buffer length.		// Allocate necessary buffer.		buffer = new BYTE[bufLen];		// Get the Adapter Information.		PIP_ADAPTER_INFO adapterInfo = reinterpret_cast<PIP_ADAPTER_INFO>(buffer);		GetAdaptersInfo(adapterInfo, &bufLen);		// Iterate the network adapters and print their MAC address.		if(adapterInfo) {			// Assuming pAdapterInfo->AddressLength is 6.			sprintf(sIMEI, "%02x:%02x:%02x:%02x:%02x:%02x",				adapterInfo->Address[0],				adapterInfo->Address[1],				adapterInfo->Address[2],				adapterInfo->Address[3],				adapterInfo->Address[4],				adapterInfo->Address[5]);		}		// make md5 for mac address		const char* md5 = wyMD5::md5(sIMEI);		memcpy(sIMEI, md5, strlen(md5));		wyFree((void*)md5);		// release buffer		delete[] buffer;		// return		return sIMEI;	} else {		return NULL;	}}
开发者ID:Adoni,项目名称:WiEngine,代码行数:39,


示例10: UpdateData

void CIPFindDlg::OnCbnSelchangeCmbDevice(){	UpdateData(FALSE);	int nCurSel = m_Device.GetCurSel();	ULONG len = 0; 	GetAdaptersInfo(NULL, &len);	PIP_ADAPTER_INFO p = static_cast<PIP_ADAPTER_INFO>(malloc(len));	GetAdaptersInfo(p, &len);	int i=0;	for (PIP_ADAPTER_INFO q = p; q != NULL; q = q->Next)	{		if (i++ == nCurSel)		{			GetCurSelIPMask(q->IpAddressList.IpAddress.String, q->IpAddressList.IpMask.String);		}	}	free(p);}
开发者ID:matrix207,项目名称:VC,代码行数:22,


示例11: mapport

bool mapport(short port){	UPnP UPnPvar;	PIP_ADAPTER_INFO pAdapterInfo = NULL;	DWORD dwRetVal = 0;	char strLocalIP[256];		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 ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR)	{		strcpy(strLocalIP,pAdapterInfo->IpAddressList.IpAddress.String);	}	else 	{		strcpy(strLocalIP,"");	}		free(pAdapterInfo);	UPnPvar.Set_UPnP(strLocalIP,"TCP","UVNC",port);	UPnPvar.OpenPorts(true);	char testchar[256];	strcpy(testchar,UPnPvar.GetExternalIP());	UPnPvar.ClosePorts(true);	return 0;}
开发者ID:runsoftdev,项目名称:ultravnc,代码行数:39,


示例12: GetAllAdaptersInfo

// 取得所有网卡的信息 David 2010.6.2 addPIP_ADAPTER_INFO GetAllAdaptersInfo(){	PIP_ADAPTER_INFO pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );	ASSERT(NULL != pAdapterInfo);	ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);	// 空间不够则重新分配空间	if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)	{		free(pAdapterInfo);		pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen); 	}	if (GetAdaptersInfo(pAdapterInfo, &ulOutBufLen) == NO_ERROR){					return pAdapterInfo;	}	else	{		free(pAdapterInfo);		return NULL;	}}
开发者ID:jhbsz,项目名称:cpe,代码行数:24,


示例13: IP_ADAPTER_INFO

vector<ULONG>* SocketExtension::LocalIPs(){	PIP_ADAPTER_INFO pIpAdapterInfo = new IP_ADAPTER_INFO();	unsigned long stSize = sizeof(IP_ADAPTER_INFO);	int nRel = GetAdaptersInfo(pIpAdapterInfo, &stSize);	if (ERROR_BUFFER_OVERFLOW == nRel)	{		delete pIpAdapterInfo;		pIpAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[stSize];		nRel = GetAdaptersInfo(pIpAdapterInfo, &stSize);	}	vector<ULONG>* address = NULL;	if (ERROR_SUCCESS == nRel)	{		while (pIpAdapterInfo)		{			IP_ADDR_STRING *pIpAddrString = &(pIpAdapterInfo->IpAddressList);			do			{				ULONG addrnum = inet_addr(pIpAddrString->IpAddress.String);				if (addrnum != 0)				{					if (address == NULL)					{						address = new vector<ULONG>;					}					address->push_back(addrnum);				}				pIpAddrString = pIpAddrString->Next;			} while (pIpAddrString);			pIpAdapterInfo = pIpAdapterInfo->Next;		}	}	if (pIpAdapterInfo)		delete pIpAdapterInfo;	return address;}
开发者ID:fbion,项目名称:PaperAirplane,代码行数:37,


示例14: sizeof

void EnvironmentImpl::nodeIdImpl(NodeId& id){	std::memset(&id, 0, sizeof(id));	PIP_ADAPTER_INFO pAdapterInfo;	PIP_ADAPTER_INFO pAdapter = 0;	ULONG len    = sizeof(IP_ADAPTER_INFO);	pAdapterInfo = reinterpret_cast<IP_ADAPTER_INFO*>(new char[len]);	// Make an initial call to GetAdaptersInfo to get	// the necessary size into len	DWORD rc = GetAdaptersInfo(pAdapterInfo, &len);	if (rc == ERROR_BUFFER_OVERFLOW)	{		delete [] reinterpret_cast<char*>(pAdapterInfo);		pAdapterInfo = reinterpret_cast<IP_ADAPTER_INFO*>(new char[len]);	}	else if (rc != ERROR_SUCCESS)	{		return;	}	if (GetAdaptersInfo(pAdapterInfo, &len) == NO_ERROR)	{		pAdapter = pAdapterInfo;		bool found = false;		while (pAdapter && !found)		{			if (pAdapter->Type == MIB_IF_TYPE_ETHERNET && pAdapter->AddressLength == sizeof(id))			{				found = true;				std::memcpy(&id, pAdapter->Address, pAdapter->AddressLength);			}			pAdapter = pAdapter->Next;		}	}	delete [] reinterpret_cast<char*>(pAdapterInfo);}
开发者ID:jacobxy,项目名称:test,代码行数:36,


示例15: FillAdaptersInfo

unsigned __int64 FillAdaptersInfo(unsigned int *pRet2){	IP_ADAPTER_INFO AdapterInfo[16], *pAdapter;	ULONG uBufLen = sizeof(AdapterInfo);	__int64 ret = 0;	if (GetAdaptersInfo(AdapterInfo, &uBufLen) == ERROR_SUCCESS)	{		for (pAdapter = AdapterInfo; pAdapter; pAdapter = pAdapter->Next)		{			if (pAdapter->AddressLength == 6 && pAdapter->Type == MIB_IF_TYPE_ETHERNET)				ret ^= BytesSHA1I64(pAdapter->Address, pAdapter->AddressLength);		}	}	return ret;}
开发者ID:enesunal,项目名称:fakeskype,代码行数:16,


示例16: sizeof

int NetUtils::FindNumberOfLocalNetworkInterfaces( void ){    PIP_ADAPTER_INFO pAdapterInfo = new IP_ADAPTER_INFO;    unsigned long output_buffer_len = sizeof(IP_ADAPTER_INFO);    // Make call to GetAdaptersInfo to get number of addapters    DWORD ret = GetAdaptersInfo( pAdapterInfo, &output_buffer_len );    delete pAdapterInfo;    if( (ret == ERROR_BUFFER_OVERFLOW) || (ret == ERROR_SUCCESS) ) {		int nif = output_buffer_len / sizeof(IP_ADAPTER_INFO);		if( output_buffer_len > (nif * sizeof(IP_ADAPTER_INFO)) )			nif++;        return nif;    }    fprintf( stderr, "FindNumberOfLocalNetworkInterfaces() failed/n" );    return -1;}
开发者ID:bwelton,项目名称:mrnet,代码行数:17,


示例17: GetMac

bool GetMac(std::vector<unsigned char>& mac){    IP_ADAPTER_INFO AdapterInfo[16];       // Allocate information for 16 cards    DWORD dwBufLen = sizeof(AdapterInfo);  // Save memory size of buffer    DWORD dwStatus = GetAdaptersInfo ( AdapterInfo, &dwBufLen); // Get info                if (dwStatus != NO_ERROR) return wxEmptyString; // Check status	for(size_t i = 0; i<sizeof(AdapterInfo); i++) {		mac.resize(AdapterInfo[i].AddressLength);		mac.assign(AdapterInfo[i].Address, AdapterInfo[i].Address + AdapterInfo[i].AddressLength);		for (size_t j=0; j< mac.size(); j++) {			if (mac[j] != 0) {				return true;			}		}	}	return false;}
开发者ID:jgleesawn,项目名称:springlobby,代码行数:18,


示例18: defined

inline long MACAddressUtility::GetMACAddressMSW(unsigned char * result){#if defined(UNDER_CE)	IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information	DWORD dwBufLen = sizeof(AdapterInfo); // Save memory size of buffer	if(GetAdaptersInfo(AdapterInfo, &dwBufLen) == ERROR_SUCCESS)	{		memcpy(result, AdapterInfo->Address, 6);	}	else return -1;#else	UUID uuid;	if(UuidCreateSequential(&uuid) == RPC_S_UUID_NO_ADDRESS) return -1;	memcpy(result, (char*)(uuid.Data4+2), 6);#endif	return 0;}
开发者ID:T-Rex,项目名称:wxMACAddressUtility,代码行数:18,


示例19: pixie_get_mac_address

/** * Retrieve the MAC address of the system */unsigned pixie_get_mac_address(unsigned char macaddr[6]){	memset(macaddr, 0, 6);#ifdef WIN32	{		DWORD dwStatus;		IP_ADAPTER_INFO *p;		IP_ADAPTER_INFO AdapterInfo[16];		DWORD dwBufLen = sizeof(AdapterInfo);		DWORD interface_index = -1;		GetBestInterface(0x01010101, &interface_index);				dwStatus = GetAdaptersInfo(AdapterInfo, &dwBufLen);		if (dwStatus != ERROR_SUCCESS)			  return 1;		for (p=AdapterInfo; p; p = p->Next) {			if (p->Index == interface_index || interface_index == -1) {				memcpy(macaddr, p->Address, 6);				return 0;			}			/*(			printf("[%02x:%02x:%02x:%02x:%02x:%02x]/n",			mac_address[0], mac_address[1], mac_address[2], 			mac_address[3], mac_address[4], mac_address[5]			);			printf("    %s/n", p->AdapterName);			printf("    %s/n", p->Description);			printf("    IP: ");			for (a = &p->IpAddressList; a; a = a->Next) {				printf("%s ", a->IpAddress.String);			}			printf("/n");			*/		}	}#else	return -1;#endif	return -1;}
开发者ID:carriercomm,项目名称:wifi-mon,代码行数:46,


示例20: enumAdapters

//// Function:	Iterate through all network adapters, for call the callback routine with adapter information//void enumAdapters( std::function<bool(IP_ADAPTER_INFO&)> callback ){	// 20 adapaters on one machine is enough!	IP_ADAPTER_INFO rgInfo[20];	DWORD size = sizeof(rgInfo);	DWORD result;	result = GetAdaptersInfo( rgInfo, &size );	if( result != ERROR_SUCCESS ) {		throw Win32Exception(result, "GetAdaptersInfo");	}	bool totalOption15 = false;	for( IP_ADAPTER_INFO* pinfo = rgInfo; pinfo && !totalOption15; pinfo = pinfo->Next ) {		bool cont = callback( *pinfo );		if( !cont )			break;	}}
开发者ID:uri247,项目名称:SIA,代码行数:22,


示例21: getIpMaskForIpAddress

/* returns the subnet mask in network byte order */static uint32_t getIpMaskForIpAddress(    uint32_t ipAddress){    /* Allocate information for up to 16 NICs */    IP_ADAPTER_INFO AdapterInfo[16];    /* Save memory size of buffer */    DWORD dwBufLen = sizeof(AdapterInfo);    uint32_t ipMask = INADDR_BROADCAST;    bool found = false;    PIP_ADAPTER_INFO pAdapterInfo;    /* GetAdapterInfo:       [out] buffer to receive data       [in] size of receive data buffer */    DWORD dwStatus = GetAdaptersInfo(AdapterInfo,        &dwBufLen);    if (dwStatus == ERROR_SUCCESS) {        /* Verify return value is valid, no buffer overflow           Contains pointer to current adapter info */        pAdapterInfo = AdapterInfo;        do {            IP_ADDR_STRING *pIpAddressInfo = &pAdapterInfo->IpAddressList;            do {                unsigned long adapterAddress =                    inet_addr(pIpAddressInfo->IpAddress.String);                unsigned long adapterMask =                    inet_addr(pIpAddressInfo->IpMask.String);                if (adapterAddress == ipAddress) {                    ipMask = adapterMask;                    found = true;                }                pIpAddressInfo = pIpAddressInfo->Next;            } while (pIpAddressInfo && !found);            /* Progress through linked list */            pAdapterInfo = pAdapterInfo->Next;            /* Terminate on last adapter */        } while (pAdapterInfo && !found);    }    return ipMask;}
开发者ID:ALEXLCC,项目名称:T3000_Building_Automation_System,代码行数:44,


示例22: sizeof

bool NetManager::SelectAdapter(int index){	// get adapter	m_adapter = m_deviceList;	for (int i = 0; i < index; i++)	{		m_adapter = m_adapter->next;		if (m_adapter == nullptr)			return false;	}	// get adapter infomation	CString ip, gateway;	MacAddress mac;	IP_ADAPTER_INFO adapterInfo[16];	DWORD bufSize = sizeof(adapterInfo);	DWORD status = GetAdaptersInfo(adapterInfo, &bufSize);	if (status != ERROR_SUCCESS)		return false;	CString name = m_adapter->name;	for (PIP_ADAPTER_INFO pInfo = adapterInfo; pInfo != nullptr; pInfo = pInfo->Next)	{		if (name.Find(pInfo->AdapterName) != -1)		{			ip = pInfo->IpAddressList.IpAddress.String;			mac = *(MacAddress*)pInfo->Address;			gateway = pInfo->GatewayList.IpAddress.String;			break;		}	}	if (ip == "")		return false;	// fill variables	m_selfIp = ip;	m_selfMac = mac;	m_selfGateway = gateway;	return true;}
开发者ID:xfgryujk,项目名称:ARPTest,代码行数:42,


示例23: sizeof

bool WindowsTimestamper::HWTimestamper_init( InterfaceLabel *iface_label, OSNetworkInterface *net_iface ) {	char network_card_id[64];	LinkLayerAddress *addr = dynamic_cast<LinkLayerAddress *>(iface_label);	if( addr == NULL ) return false;	PIP_ADAPTER_INFO pAdapterInfo;	IP_ADAPTER_INFO AdapterInfo[32];       // Allocate information for up to 32 NICs	DWORD dwBufLen = sizeof(AdapterInfo);  // Save memory size of buffer	DWORD dwStatus = GetAdaptersInfo( AdapterInfo, &dwBufLen );	if( dwStatus != ERROR_SUCCESS ) return false;	for( pAdapterInfo = AdapterInfo; pAdapterInfo != NULL; pAdapterInfo = pAdapterInfo->Next ) {		if( pAdapterInfo->AddressLength == ETHER_ADDR_OCTETS && *addr == LinkLayerAddress( pAdapterInfo->Address )) { 			break;		}	}	if( pAdapterInfo == NULL ) return false;	if( strstr( pAdapterInfo->Description, NANOSECOND_CLOCK_PART_DESCRIPTION ) != NULL ) {		netclock_hz.QuadPart = NETCLOCK_HZ_NANO;	} else {		netclock_hz.QuadPart = NETCLOCK_HZ_OTHER;	}	fprintf( stderr, "Adapter UID: %s(%s)/n", pAdapterInfo->AdapterName, pAdapterInfo->Description+(strlen(pAdapterInfo->Description)-7));	PLAT_strncpy( network_card_id, NETWORK_CARD_ID_PREFIX, 63 );	PLAT_strncpy( network_card_id+strlen(network_card_id), pAdapterInfo->AdapterName, 63-strlen(network_card_id) );	miniport = CreateFile( network_card_id,		GENERIC_READ | GENERIC_WRITE,		FILE_SHARE_READ | FILE_SHARE_WRITE,		NULL, OPEN_EXISTING, 0, NULL );	if( miniport == INVALID_HANDLE_VALUE ) return false;	tsc_hz.QuadPart = getTSCFrequency( 1000 );	if( tsc_hz.QuadPart == 0 ) {		return false;	}	return true;}
开发者ID:Jordi3man,项目名称:Open-AVB,代码行数:41,


示例24: get_gateway

/**	@brief	Get the gateway of a given ip. Only for windows	@details	For example for ip 192.168.1.10 the gateway is 192.168.1.1*/bool utils :: get_gateway(struct in_addr ip , char *sgatewayip , int *gatewayip){	char pAdapterInfo[5000];	PIP_ADAPTER_INFO  AdapterInfo;	ULONG OutBufLen = sizeof(pAdapterInfo) ;	GetAdaptersInfo((PIP_ADAPTER_INFO) pAdapterInfo, &OutBufLen);	for(AdapterInfo = (PIP_ADAPTER_INFO)pAdapterInfo; AdapterInfo ; AdapterInfo = AdapterInfo->Next)	{		if(ip.s_addr == inet_addr(AdapterInfo->IpAddressList.IpAddress.String))		{			strcpy(sgatewayip , AdapterInfo->GatewayList.IpAddress.String);		}	}	*gatewayip = inet_addr(sgatewayip);	return true;}
开发者ID:silv3rm00n,项目名称:Turbotrace,代码行数:28,


示例25: sizeof

void		Client::getMACAddress(void){	bool	macIsSet = false;	IP_ADAPTER_INFO AdapterInfo[16];	DWORD dwBufLen = sizeof(AdapterInfo);	DWORD dwStatus = GetAdaptersInfo(AdapterInfo, &dwBufLen);	if (dwStatus == ERROR_SUCCESS)	{		PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;		while (pAdapterInfo && !macIsSet)		{			if (isValidMac(pAdapterInfo))			{				m_MAC = addrToString(pAdapterInfo->Address);				macIsSet = true;			}			pAdapterInfo = pAdapterInfo->Next;		}	}}
开发者ID:Kevin-Costa,项目名称:cpp_spider,代码行数:21,


示例26: ZeroMemory

	string cHWID::Get()	{		char data[4096];		ZeroMemory(data, 4096);		unsigned long  len = 4000;		PIP_ADAPTER_INFO pinfo = (PIP_ADAPTER_INFO)data;		char sbuf[20];		string sret;		DWORD ret = GetAdaptersInfo(pinfo, &len);		if (ret != ERROR_SUCCESS)			return string(/*NULL*/XorStr<0xB3, 5, 0xFA4DE0F4>("/xFD/xE1/xF9/xFA" + 0xFA4DE0F4).s);		for (int k = 0; k < 5; k++) {			sprintf(sbuf, /*%02X-*/XorStr<0xED, 6, 0x6E0543B0>("/xC8/xDE/xDD/xA8/xDC" + 0x6E0543B0).s, pinfo->Address[k]);			sret += sbuf;		}		sprintf(sbuf, /*%02X*/XorStr<0x2D, 5, 0xE1F8C9CD>("/x08/x1E/x1D/x68" + 0xE1F8C9CD).s, pinfo->Address[5]);		sret += sbuf;		return(sret);	}
开发者ID:Jerffffff,项目名称:Combat-Arms,代码行数:22,


示例27: MqttHal_GetNetworkIntfaceMAC

int MqttHal_GetNetworkIntfaceMAC(char *_ifname, char* _ifmac){	#if defined(WIN32) //windows	IP_ADAPTER_INFO AdapterInfo[16];			// Allocate information for up to 16 NICs	DWORD dwBufLen = sizeof(AdapterInfo);		// Save the memory size of buffer	DWORD dwStatus = GetAdaptersInfo(			// Call GetAdapterInfo		AdapterInfo,							// [out] buffer to receive data		&dwBufLen);								// [in] size of receive data buffer	//assert(dwStatus == ERROR_SUCCESS);			// Verify return value is valid, no buffer overflow	PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info	//display mac address	//printf("Mac : %.2X:%.2X:%.2X:%.2X:%.2X:%.2X/n", pAdapterInfo->Address[0], pAdapterInfo->Address[1], pAdapterInfo->Address[2], pAdapterInfo->Address[3], pAdapterInfo->Address[4], pAdapterInfo->Address[5]);	sprintf(_ifmac, "%02x%02x%02x%02x%02x%02x", pAdapterInfo->Address[0], pAdapterInfo->Address[1], pAdapterInfo->Address[2], pAdapterInfo->Address[3], pAdapterInfo->Address[4], pAdapterInfo->Address[5]);	#else	int fd;	struct ifreq ifr;	char *iface = _ifname;	unsigned char *mac = NULL;	memset(&ifr, 0, sizeof(ifr));	fd = socket(AF_INET, SOCK_DGRAM, 0);	ifr.ifr_addr.sa_family = AF_INET;	strncpy(ifr.ifr_name , iface , IFNAMSIZ-1);	if (0 == ioctl(fd, SIOCGIFHWADDR, &ifr)) {		mac = (unsigned char *)ifr.ifr_hwaddr.sa_data;		//display mac address		//printf("Mac : %.2X:%.2X:%.2X:%.2X:%.2X:%.2X/n" , mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);		sprintf(_ifmac, "%02x%02x%02x%02x%02x%02x" , mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);	}	close(fd);	return 0;	#endif}
开发者ID:ivan0124,项目名称:MyHandler,代码行数:39,


示例28: sizeof

void CFTLNetTester::dump_allAdaptersInfo(){    //显示所有 Enable 的网络适配器的地址信息(注意:Disable的无法获取)    BOOL bRet = FALSE;    IP_ADAPTER_INFO AdapterInfo[16] = { NULL };    DWORD dwBufLen = sizeof(AdapterInfo);    DWORD adpIndex = 0;    DWORD dwStatus = 0;    API_VERIFY(ERROR_SUCCESS == (dwStatus = GetAdaptersInfo(AdapterInfo, &dwBufLen)));    if (bRet)    {        PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;        while (pAdapterInfo)        {            FTLASSERT(pAdapterInfo->ComboIndex == pAdapterInfo->Index); //TODO:实测这两个值一样, 有什么区别?            adpIndex++;            //将16进制的Mac地址转换为易读的方式            LONG nStrBinaryCount = 0;            API_VERIFY(CFConvUtil::HexFromBinary(pAdapterInfo->Address, pAdapterInfo->AddressLength, NULL, &nStrBinaryCount, _T('-')));            CFMemAllocator<TCHAR> AddressBuf(nStrBinaryCount);            API_VERIFY(CFConvUtil::HexFromBinary(pAdapterInfo->Address, pAdapterInfo->AddressLength, AddressBuf.GetMemory(), &nStrBinaryCount, _T('-')));            FTLTRACE(TEXT("[%d]:ComboIdx=%d, Idx=%d,Type=%d Desc=%s, AdapterName=%s, AddressLength=%d, Address=%s/n"),                     adpIndex,                     pAdapterInfo->ComboIndex,                     pAdapterInfo->Index,                     pAdapterInfo->Type, //目前实测都是 6, TODO: 具体对应的枚举                     CFConversion().MBCS_TO_TCHAR(pAdapterInfo->Description),    //描述信息, 如: Realtek PCIe GBE Family Controller                     CFConversion().MBCS_TO_TCHAR(pAdapterInfo->AdapterName),    //GUID, 如 {6CF21E5D-0708-4F63-903E-47208B4F51EB}                     pAdapterInfo->AddressLength, AddressBuf.GetMemory());       //MAC地址(Address)的16位表示, 如: 8c-89-a5-3d-6d-d7            //其他可以获取到IP地址等            pAdapterInfo = pAdapterInfo->Next;        }    }}
开发者ID:moon-sky,项目名称:fishjam-template-library,代码行数:38,



注:本文中的GetAdaptersInfo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GetAddr函数代码示例
C++ GetActorRotation函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。