![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение 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.