Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение MAC-адреса УДАЛЁННОГО компьютера [D6, D7, WinXP]


Volf_555 ©   (2005-10-15 23:48:00) 

Как определить MAC-адрес удалённого компьютера по IP-адресу?


Васяня   (2005-11-28 05:45:00) [1]


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Winsock, ExtCtrls;

const
 MAX_ADAPTER_ADDRESS_LENGTH = 6;

type
 TMacAddress = array[0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of byte;

 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

 function SendARP(const DestIP, SrcIP: ULONG;
   pMacAddr: PULONG; var PhyAddrLen: ULONG): DWORD; stdcall; external 'IPHLPAPI.DLL';

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

 function GetMAC(Value: TMacAddress; Length: DWORD): String;
 var
   I: Integer;
 begin
   if Length = 0 then Result := '00-00-00-00-00-00' else
   begin
     Result := '';
     for i:= 0 to Length - 2 do
       Result := Result + IntToHex(Value[i], 2) + '-';
     Result := Result + IntToHex(Value[Length-1], 2);
   end;
 end;

var
 DestIP, SrcIP: ULONG;
 pMacAddr: TMacAddress;
 PhyAddrLen: ULONG;
begin
 DestIP := inet_addr('192.168.2.115');
 PhyAddrLen := 6;
 SendArp(DestIP, 0, @pMacAddr, PhyAddrLen);
 Caption := GetMAC(pMacAddr, PhyAddrLen);
end;

end.


Volf_555   (2005-11-12 14:05:00) [2]

Приведи пример использования этой команды!
Следующий код вызывает ошибку:
SendARP(10.0.0.1;что за SrcIP??;это здевь вручную мак-адрес писать?!; а тут что?)
И как DWORD перевести в String в дальнейшем?


Verg   (2005-11-11 10:44:00) [3]

SendARP

function SendARP(DestIP:DWORD;SrcIP:DWORD; var pMacAddr; var PhyAddrLen:DWORD):DWORD;stdcall;

implementation
function   SendARP;          external 'IPHLPAPI.DLL';


Volf_555   (2005-11-10 18:32:00) [4]

Народ! Так как же всё таки определить MAC-адрес удалённого компьютера по IP-адресу?


Volf_555   (2005-10-17 02:08:00) [5]

>>antoxa2005
Смотри следующую ссылку:
http://newgalaxy.alfaspace.net/forum/topic.php?forum=29&topic=1


antoxa2005   (2005-10-16 03:35:00) [6]

А как определить MAC-адрес текущего компьютера, но чтобы на всех ОС работало Win98-Win2003 или хотябы -WinXP(Sp2)


Volf_555   (2005-10-16 01:04:00) [7]

Дай ссылку на MSDN


Alex Konshin   (2005-10-16 00:38:00) [8]

Насколько удаленного? В локалке?
Если в одном сегменте сети, то через IP Helper API, смотри в MSDN.


Наверх

Титульная страница Поиск, карта сайта Написать письмо