Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2008, 23:57   #1
ratttx
 
Регистрация: 09.10.2007
Сообщений: 3
По умолчанию Delphi 7 Как программно узнать мак-адрес?

Люди хелллп - искал в инете не нашел....... (нужно очень срочно....)
Задача:
"Как в Delphi 7 программно узнать мак-адрес локальной(своей) сетевой карты и записать в МЕМО?"

Я чайник, прошу, если не сложно написать код на буттон клик и если что в Uses нужно дописать, или какие компоненты применить, - описать подобно...

За ранее благодарен, всем, кто ответит!

П.с. темы такой в инете не нашел(искал долго), тема актуальна....
ratttx вне форума Ответить с цитированием
Старый 15.04.2008, 00:59   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
Данный пример составлен на основе статьи на сайте Borland: 
http://community.borland.com/article/0,1410,26040,00.html 

uses 
NB30; 

function GetAdapterInfo(Lana: Char): String; 
var 
Adapter: TAdapterStatus; 
NCB: TNCB; 
begin 
FillChar(NCB, SizeOf(NCB), 0); 
NCB.ncb_command := Char(NCBRESET); 
NCB.ncb_lana_num := Lana; 
if Netbios(@NCB) <> Char(NRC_GOODRET) then 
begin 
Result := 'mac not found'; 
Exit; 
end; 

FillChar(NCB, SizeOf(NCB), 0); 
NCB.ncb_command := Char(NCBASTAT); 
NCB.ncb_lana_num := Lana; 
NCB.ncb_callname := '*'; 

FillChar(Adapter, SizeOf(Adapter), 0); 
NCB.ncb_buffer := @Adapter; 
NCB.ncb_length := SizeOf(Adapter); 
if Netbios(@NCB) <> Char(NRC_GOODRET) then 
begin 
Result := 'mac not found'; 
Exit; 
end; 
Result := 
IntToHex(Byte(Adapter.adapter_address[0]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[1]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[2]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[3]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[4]), 2) + '-' + 
IntToHex(Byte(Adapter.adapter_address[5]), 2); 
end; 

function GetMACAddress: string; 
var 
AdapterList: TLanaEnum; 
NCB: TNCB; 
begin 
FillChar(NCB, SizeOf(NCB), 0); 
NCB.ncb_command := Char(NCBENUM); 
NCB.ncb_buffer := @AdapterList; 
NCB.ncb_length := SizeOf(AdapterList); 
Netbios(@NCB); 
if Byte(AdapterList.length) > 0 then 
Result := GetAdapterInfo(AdapterList.lana[0]) 
else 
Result := 'mac not found'; 
end;
mihali4 вне форума Ответить с цитированием
Старый 15.04.2008, 01:07   #3
ratttx
 
Регистрация: 09.10.2007
Сообщений: 3
Печаль

Большое спасибо за пример, но есть небольшая проблема, в том. что я полный чайник...... И как это преобразовать в буттон клик не знаю..... Если я не сильно отвлекаю, может вы сможете это в буттон клик и в мемо запихать?
ratttx вне форума Ответить с цитированием
Старый 15.04.2008, 08:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну как как. Вот как:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
caption:=GetMACAddress;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(HTML или JS) Узнать IP адрес Air Помощь студентам 14 11.07.2008 10:12
Как узнать с какого по какой адрес занимает процесс в системе. kalexi Win Api 2 30.03.2008 15:48
Узнать адрес ошибки Д'якон Win Api 6 05.12.2007 22:12
Как узнать IP адрес? AidarBik Работа с сетью в Delphi 2 11.07.2007 12:37
как узнать ip адрес зная mac адрес Roman Работа с сетью в Delphi 9 25.06.2007 12:39