Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   IPV4 Paket Header erstellen (https://www.delphipraxis.net/201061-ipv4-paket-header-erstellen.html)

Peter666 19. Jun 2019 14:47

IPV4 Paket Header erstellen
 
Hallo,

ich hab mal (wieder) eine Frage. Ich bekomme über eine DLL Daten geliefert und möchte die als UDP Signal weiterleiten. Dafür muss ich für die Daten ein 20Byte großen IPv4 Header erstellen. Ich habe die Multicast Adresse und den Port, nebst einem PByteArray und dessen Länge. Hat das jemand schon mal gemacht, ansonsten fürchte ich darf ich das wohl selber erstellen.

Peter
PS: Ich glaube die CRC Prüfsumme zu erstellen wird am schwierigsten.

Delphi-Quellcode:
function checksum(ABuffer: PByteArray; ALength: Integer): Word;
var i: integer;
   w: word;
   s: word;
begin
    s := 0;
    i:=0;
    while i<ALength do
    begin
     w := ABuffer^[i] shl 8 + ABuffer^[i+1];
     s := s + w;
     inc(i,2);
    end;

    s := (s shl 16) + (s and $ffff);
    result :=(not s) and $FFFF;
end;

mjustin 19. Jun 2019 15:48

AW: IPV4 Paket Header erstellen
 
Wäre es nicht komfortabler, eine fertig gestrickte Lösung wie Indy oder Synapse zu verwenden?

Die schreiben dann die Header und die Nutzlast in die IP Pakete.

Peter666 19. Jun 2019 20:04

AW: IPV4 Paket Header erstellen
 
Prinzipiell schon, aber ich muss das ganze als PCAP speichern. Da ist es einfacher das selber zu machen, denn streng genommen wird dass nicht direkt ins Netzwerk gespeichert.

Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz