这篇教程C++ GetAdaptersInfo函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetAdaptersInfo函数的典型用法代码示例。如果您正苦于以下问题:C++ GetAdaptersInfo函数的具体用法?C++ GetAdaptersInfo怎么用?C++ GetAdaptersInfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetAdaptersInfo函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: sizeofDWORD 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: mainint 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: GetMACaddressvoid 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_ipstatic 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: mallocchar *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: getAdaptersInfoint 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: GetAdaptersInfoconst 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: UpdateDatavoid 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: mapportbool 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_INFOvector<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: sizeofvoid 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: FillAdaptersInfounsigned __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: sizeofint 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: GetMacbool 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: definedinline 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: sizeofbool 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: sizeofbool 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: sizeofvoid 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_GetNetworkIntfaceMACint 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: sizeofvoid 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函数代码示例 |