Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Получение Mac адреса. С++ |

11.04.2007, 23:30
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Получение Mac адреса. С++
Недавно был спор о том как получить MAC адрес ...
На С++ , с помощью библиотеки 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;
}
|
|
|

12.04.2007, 08:05
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
эт ты писал?)
|
|
|

12.04.2007, 23:43
|
|
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме: 1985206
Репутация:
963
|
|
Я вобщем-то здесь случайно, но коли уж здесь: вовсе не сложно составить ARP пакет, отправить его и получить ответ с МАК адресом. Я делал это на Perl, на Си еще легче выглядит.
Не мой код:
Код:
char pkt[]=
// Ethernet заголовок
"\xff\xff\xff\xff\xff\xff" // Широковещательный адрес
"AAAAAA" // Отправитель
"\x08\x06" // Тип пакета (ARP)
// ARP заголовок
"\x00\x01" // Тип hAddr (Ethernet)
"\x08\x00" // Протокол pAddr (IP)
"\x06" // Размер hAddr (hLen)
"\x04" // Размер прокола (pLen)
"\x00\x02" // ARP опкод (REPLY)
"AAAAAA" // Mac отправитель (41:41:41:41:41:41)
"AAAA" // IP отправитель (65.65.65.65)
"AAAAAA" // Mac точки назначения (41:41:41:41:41:41)
"AAAA" // IP точки назначения (65.65.65.65)
|
|
|

13.04.2007, 09:30
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
KSURi, тут тебе root/Administrator права надо. А вот в первом случае зависит от либы )
|
|
|

13.04.2007, 14:14
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
(c)softtime.ru
Great: 
|
|
|

13.04.2007, 16:05
|
|
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме: 1985206
Репутация:
963
|
|
Сообщение от nerezus
KSURi, тут тебе root/Administrator права надо. А вот в первом случае зависит от либы )
Знаю, знаю) Но если это не трой/что-то подобное, то не вижу проблемы..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|