File: pack-eth-ipv4-tcp-compute.pl

package info (click to toggle)
libnet-frame-perl 1.21-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 316 kB
  • sloc: perl: 1,883; makefile: 6
file content (27 lines) | stat: -rw-r--r-- 557 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl
use strict;
use warnings;

use Net::Frame::Layer::ETH;
use Net::Frame::Layer::IPv4;
use Net::Frame::Layer::TCP;

my $eth = Net::Frame::Layer::ETH->new;
my $ip4 = Net::Frame::Layer::IPv4->new;
my $tcp = Net::Frame::Layer::TCP->new(
   options => "\x02\x04\x54\x0b",
);

$tcp->computeLengths;
$tcp->computeChecksums({
   type => 'IPv4',
   src  => $ip4->src,
   dst  => $ip4->dst,
});

$ip4->computeLengths({ payloadLength => $tcp->getLength });
$ip4->computeChecksums;

print $eth->print."\n";
print $ip4->print."\n";
print $tcp->print."\n";