У меня есть следующие функции:
Эта функция будет получать все IP-адреса с локального компьютера.
void GetIP()
{
WORD wVersionRequested;
WSADATA wsaData;
char name[ 255 ];
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );
char *ip;
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if( gethostname ( name, sizeof( name ) ) == 0 )
{
if ( ( hostinfo = gethostbyname( name ) ) != NULL )
{
int nCount = 0;
while ( hostinfo->h_addr_list[ nCount ] )
{
ip = inet_ntoa( *(struct in_addr *)hostinfo->h_addr_list[ nCount ] );
//printf( "IP #%d: %s\n", ++nCount, ip );
printf( "IP : %s\n", ip );
++nCount;
}
}
}
}
}//GetIP
А вот моя вторая функция, которая будет получать каждый MAC-адрес с локальной машины:
void GetMACaddress()
{
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
do
{
printf( "MAC : %02X:%02X:%02X:%02X:%02X:%02X\n", pAdapterInfo->Address[ 0 ],
pAdapterInfo->Address[ 1 ],
pAdapterInfo->Address[ 2 ],
pAdapterInfo->Address[ 3 ],
pAdapterInfo->Address[ 4 ],
pAdapterInfo->Address[ 5 ] );
pAdapterInfo = pAdapterInfo->Next; // Progress through linked list
}while( pAdapterInfo ); // Terminate if last adapter
}//GetMACaddress
Итак, мой вопрос:
Как я узнаю, принадлежит ли запрашиваемый MAC-адрес и запрашиваемый IP-адрес WiFi?
Спасибо!