Форум: Форум C++Разное
Новые темы: 00
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получить MAC-адрес
 
 автор: zaraza   (06.04.2007 в 08:33)   письмо автору
 
 

Как в C++ получать Мак адрес юзера, ну и загнать куда нить в переменную :E

  Ответить  
 
 автор: cheops   (07.04.2007 в 16:17)   письмо автору
 
   для: zaraza   (06.04.2007 в 08:33)
 

MAC-адрес текущей машины? Или участника сети?

  Ответить  
 
 автор: zaraza   (11.04.2007 в 13:34)   письмо автору
 
   для: cheops   (07.04.2007 в 16:17)
 

Текущей. Желательно еще напишите функции перевода в мд5 и б42. И главное, что бы Мак адрес был в переменной %)

  Ответить  
 
 автор: cheops   (11.04.2007 в 20:06)   письмо автору
 
   для: 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: " );

        forchar 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;
}

  Ответить  
 
 автор: zaraza   (12.04.2007 в 07:26)   письмо автору
 
   для: 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] ); 
}


это часть кода, как тут можно загнать вывод в одну переменную??

  Ответить  
 
 автор: cheops   (12.04.2007 в 15:51)   письмо автору
 
   для: 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]);

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования