1#!/usr/bin/perl 2# 3# $Id: ip6-syn-send.pl 1640 2009-11-09 17:58:27Z gomor $ 4# 5use strict; 6use warnings; 7 8use Getopt::Std; 9my %opts; 10getopts('i:d:m:p:v', \%opts); 11 12die "Usage: $0 -i ipDst -m macDst -p dstPort [-M srcMac] ". 13 "[-d dev] [-v]\n" 14 unless $opts{i} && $opts{m} && $opts{p}; 15 16use Net::Packet; 17 18$Env->dev($opts{d}) if $opts{d}; 19$Env->mac($opts{M}) if $opts{M}; 20$Env->debug(3) if $opts{v}; 21 22my $eth = Net::Packet::ETH->new( 23 type => NP_ETH_TYPE_IPv6, 24 dst => $opts{m}, 25); 26 27my $tcp = Net::Packet::TCP->new( 28 dst => $opts{p}, 29 options => "\x02\x04\x05\xa0", 30); 31 32my $ip6 = Net::Packet::IPv6->new( 33 dst => $opts{i}, 34); 35 36my $l7 = Net::Packet::Layer7->new( 37 data => "test", 38); 39 40my $frame = Net::Packet::Frame->new( 41 l2 => $eth, 42 l3 => $ip6, 43 l4 => $tcp, 44 l7 => $l7, 45); 46 47$frame->send; 48 49until ($Env->dump->timeout) { 50 if ($frame->recv) { 51 print "Reply:\n"; 52 print $frame->reply->l3->print, "\n"; 53 print $frame->reply->l4->print, "\n"; 54 last; 55 } 56} 57 58$Env->dump->stop; 59$Env->dump->clean; 60