Start of project

This commit is contained in:
Ryan Voots 2019-05-22 15:14:31 -07:00
commit fc983d033c
2 changed files with 70 additions and 0 deletions

7
cpanfile Normal file
View file

@ -0,0 +1,7 @@
requires 'Net::Frame::Layer::IGMP';
requires 'Net::Frame::Layer::IGMP::v3Report';
requires 'Net::Frame::Layer::IPv4';
requires 'Net::Frame::Simple';
requires 'Net::Write::Layer';
requires 'Net::Write::Layer3';
requires 'Sys::HostIP';

63
igmp.pl Executable file
View file

@ -0,0 +1,63 @@
#!/usr/bin/env perl
use strict;
use warnings;
use Net::Frame::Layer::IGMP qw/:consts/;
use Net::Frame::Layer::IGMP::v3Report qw/:consts/;
use Net::Frame::Layer::IPv4 qw/:consts/;
use Net::Frame::Simple;
use Net::Write::Layer qw/:constants/;
use Net::Write::Layer3;
use Sys::HostIP;
my $src_ip = Sys::HostIP->new()->ip;
#socket my $raw_socket, AF_INET, SOCK_RAW, IPPROTO_RAW or die "Couldn't open socket $!";
my $ipv4 = Net::Frame::Layer::IPv4->new(
src => $src_ip,
dst => '224.0.0.22',
protocol => NF_IPv4_PROTOCOL_IGMP,
flags => NF_IPv4_DONT_FRAGMENT,
ttl => 1,
);
my $report = Net::Frame::Layer::IGMP::v3Report->new(
type => NF_IGMP_REPORTv3TYPE_CHANGEEXCLUDE,
auxDataLen => 0,
numSources => 0,
multicastAddress => '239.255.42.44',
sourceAddress => [],
auxData => '',
);
#my $igmp = Net::Frame::Layer::IGMP->new(
# type => NF_IGMP_TYPE_REPORTv3,
# maxResp => 0,
# checksum => 0,
# groupAddress => '239.255.42.44',
#);
my $igmp = Net::Frame::Layer::IGMP->v3report(
type => NF_IGMP_TYPE_REPORTv3,
maxResp => 0,
checksum => 0,
reserved => 0,
numGroupRecs => 1,
);
my $osimple = Net::Frame::Simple->new(
layers => [$ipv4, $igmp, $report],
);
my $writer = Net::Write::Layer3->new(
dst => '224.0.0.22',
protocol => NW_IPPROTO_RAW,
family => NW_AF_INET,
);
$writer->open();
$osimple->send($writer);
$writer->close();
#print Dumper(unpack("H*", $osimple->pack));