#!/usr/bin/perl

use SNMP;

# commentaire
if (not(defined(@ARGV)))
{   print "1000AP Set \n";
	print "version du 17 août 2002\n";
    print "Syntaxe: arguments Adresse_MAC  (xx:xx:xx:xx:xx:xx)\n";
    print "Arguments:\n";
    print "i=adresse IP (par défaut 10.0.0.100)\n";
    print "g=gateway    (par défaut 10.0.0.138)\n";
    print "m=masque     (par défaut 255.0.0.0)\n";
exit;}

@argu=@ARGV;
$MAC=pop(@argu);
foreach $argument (@argu)

{ @d=split('=',$argument);
  if ($d[0] eq "i") {$IP=$d[1];}
  if ($d[0] eq "g") {$GATEWAY=$d[1];}
  if ($d[0] eq "m") {$MASK=$d[1];};
}

if (not(defined($IP))) {$IP="10.0.0.100";}
if (not(defined($GATEWAY))) {$GATEWAY="10.0.0.138";}
if (not(defined($MASK))) {$MASK="255.0.0.0";}

$CHAINE="";
@d=split(':',$MAC);
foreach $nombre (@d)
 { 
$cv= sprintf("%d", hex($nombre));
 $CHAINE="$CHAINE$cv.";
}
$CHAINE="$CHAINE$IP.$MASK.$GATEWAY";

# experiment with SET and multicast...
my $session = new SNMP::Session("DestHost"=>"224.0.1.43",
                                "Community"=>"private");
print "Résultat de la requête: ";
# bytes 0-5: MAC address
# 6-9: IP
# 10-13: netmask
# 14-17: "default" gateway
my $num=pack("C*", (split /\./,$CHAINE));
#print $num, "\n";
print $session->set([["1.3.6.1.4.1.937.2.1.2.6",0,
                      $num,"OCTETSTR"]]);
# this seems to return "0 but true..."
print "\n";
