Страница 1 из 1

Передача пакета на сетевой интерфейс

СообщениеДобавлено: 16.05.2016 16:51:51
mirk
Как послать пакет на сетевой интерфейс у которого нет IP?
И как принять подобный пакет?

Re: Передача пакета на сетевой интерфейс

СообщениеДобавлено: 18.05.2016 16:04:32
mig-31
Ethernet пакет через MAC адреса.

Re: Передача пакета на сетевой интерфейс

СообщениеДобавлено: 18.05.2016 23:30:50
mirk
Вопрос прежний - как :)

Re: Передача пакета на сетевой интерфейс

СообщениеДобавлено: 19.05.2016 00:48:31
shelter
Установить драйвер WinPCap. Для Delphi есть заголовочные файлы. Через него можно слать и принимать Ethernet пакеты.

procedure TSendingThread.ExecuteInternal;
const BUF_SIZE = 2048;
var buf: PByteArray;
pkt: Ppacket;
len: word;
seq: byte;
nowEmpty: boolean;
begin
seq := 0;
buf := GetMemory(BUF_SIZE);
try
Move(Eth.FEthernet.snd.mac, buf^[0], 6);
Move(Eth.FEthernet.rcv.mac, buf^[6], 6);
buf^[12] := hi(Eth.FEthernet.snd.typ);
buf^[13] := lo(Eth.FEthernet.snd.typ);
pkt := PacketAllocatePacket;
if pkt = nil then PCapCheck(false, 'PacketAllocatePacket');
try
...
PacketInitPacket(pkt, buf, 17 + len);
PCapCheck(PacketSendPacket(Eth.FEthernet.Adapter, pkt, false), 'PacketSendPacket');
end;
finally
PacketFreePacket(pkt);
end;
finally
FreeMem(buf);
end;
end;