|
|
|
| Как в C++ получать Мак адрес юзера, ну и загнать куда нить в переменную :E | |
|
|
|
|
|
|
|
для: zaraza
(06.04.2007 в 08:33)
| | MAC-адрес текущей машины? Или участника сети? | |
|
|
|
|
|
|
|
для: cheops
(07.04.2007 в 16:17)
| | Текущей. Желательно еще напишите функции перевода в мд5 и б42. И главное, что бы Мак адрес был в переменной %) | |
|
|
|
|
|
|
|
для: zaraza
(11.04.2007 в 13:34)
| | Хм... не помню когда и откуда брал код, но в своих аналах обнаружил программу, которая получает MAC-адрес, используя для этого DLL-библиотеку iphlpapi.dll.
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>
int main()
{
// Указатель на функцию GetAdaptersInfo
typedef DWORD(CALLBACK* PTR_GETADAPTERSINFO)(PIP_ADAPTER_INFO,PULONG);
// Обращение iphlpapi.dll
HINSTANCE iphlpapi;
iphlpapi=LoadLibrary("iphlpapi.dll");
if(!iphlpapi)
{
printf ("iphlpapi.dll not found\n");
return (1);
}
PTR_GETADAPTERSINFO GetAdaptersInfo;
GetAdaptersInfo = (PTR_GETADAPTERSINFO)GetProcAddress(iphlpapi, "GetAdaptersInfo");
ULONG adapter_info_size = 0;
PIP_ADAPTER_INFO ptr_adapter_info = NULL;
PIP_ADAPTER_INFO ptr_adapter_info_first = NULL;
GetAdaptersInfo( ptr_adapter_info, &adapter_info_size );
ptr_adapter_info_first = ptr_adapter_info = (PIP_ADAPTER_INFO) new(
char[adapter_info_size] );
if ( GetAdaptersInfo( ptr_adapter_info, &adapter_info_size ) != ERROR_SUCCESS)
{
printf( "Error while GetAdaptersInfo\n" );
delete( ptr_adapter_info );
return( 1 );
}
while( ptr_adapter_info )
{
printf ( "ID of adapter: %s\n", ptr_adapter_info->AdapterName );
printf ( "Description: %s\n", ptr_adapter_info->Description );
printf ( "MAC address: " );
for( char i=0; i < (int)ptr_adapter_info->AddressLength; i++)
{
printf ("%02x ", (unsigned char)ptr_adapter_info->Address[i]);
}
printf ("\n");
printf ("Adapter type: %u\n\n", ptr_adapter_info->Type );
ptr_adapter_info = ptr_adapter_info->Next;
}
delete( ptr_adapter_info_first );
char a = getchar();
return 0;
} |
| |
|
|
|
|
|
|
|
для: cheops
(11.04.2007 в 20:06)
| |
if ( uRetCode == 0 )
{
printf( "The Ethernet Number is: %02x%02x%02x%02x%02x%02x\n",
a1.adapt.adapter_address[0],
a1.adapt.adapter_address[1],
a1.adapt.adapter_address[2],
a1.adapt.adapter_address[3],
a1.adapt.adapter_address[4],
a1.adapt.adapter_address[5] );
}
|
это часть кода, как тут можно загнать вывод в одну переменную?? | |
|
|
|
|
|
|
|
для: zaraza
(12.04.2007 в 07:26)
| | Да, для этого удобно воспользоваться функцией sprintf(), которая выводит форматированные данные в строку
char str[];
sprintf(str, "%02x%02x%02x%02x%02x%02x",
a1.adapt.adapter_address[0],
a1.adapt.adapter_address[1],
a1.adapt.adapter_address[2],
a1.adapt.adapter_address[3],
a1.adapt.adapter_address[4],
a1.adapt.adapter_address[5]); |
| |
|
|
|