NAME
MikroTik::API::Examples - collection of the scripts from eg
Synopsis
This module was autogenerated from the files in the eg directory of the distribution. For detailed (cough) documenataion see MikroTik::API. To run the examples either copy-paste them from here or download and unpack the distribution and take the files from the eg directory.
Examples
eg/get_ethernet.pl
#!/usr/bin/perl
use strict;
use warnings;
### Example for method get_by_key(): show all ethernet interfaces of router by command line
use MikroTik::API;
my $api = MikroTik::API->new({
host => 'mikrotik.example.org',
username => 'whoami',
password => 'SECRET',
use_ssl => 1,
});
my %interface = $api->get_by_key('/interface/ethernet/print', 'name' );
# Some preparation for sorting
map {
$interface{$_}->{'.id'} =~ /^\*(.*)/;
$interface{$_}->{id_dec} = unpack( 's', pack 's', hex($1) );
} keys %interface;
print "Default-Name Name active running\n";
foreach my $name ( sort { $interface{$a}->{'id_dec'} <=> $interface{$b}->{'id_dec'} } keys %interface ) {
printf("%-12.12s %-14.14s %-6.6s %-7.7s\n", $interface{$name}->{'default-name'}, $name, $interface{$name}->{disabled} eq 'true' ? 'no' : 'yes', $interface{$name}->{running} );
}
$api->logout();
eg/get_identity.pl
#!/usr/bin/perl
use strict;
use warnings;
### Example for method query(): get identity of router by command line
use MikroTik::API;
my $api = MikroTik::API->new({
host => 'mikrotik.example.org',
username => 'whoami',
password => 'SECRET',
use_ssl => 1,
});
my ( $ret_get_identity, @aoh_identity ) = $api->query( '/system/identity/print', {}, {} );
print "Name of router: $aoh_identity[0]->{name}\n";
$api->logout();
eg/set_ethernet_name.pl
#!/usr/bin/perl
use strict;
use warnings;
### Example for combination of query() and cmd(): set name of ethernet interface by default-name
use MikroTik::API;
if ( not ( defined $ARGV[0] && defined $ARGV[1] ) ) {
die 'USAGE: $0 <default name> <new name>';
}
my $api = MikroTik::API->new({
host => 'mikrotik.example.org',
username => 'whoami',
password => 'SECRET',
use_ssl => 1,
});
my ( $ret_interface_print, @interfaces ) = $api->query('/interface/print', { '.proplist' => '.id,name' }, { type => 'ether', 'default-name' => $ARGV[0] } );
if( $interfaces[0]->{name} eq $ARGV[1] ) {
print "Name is already set to this value\n";
}
else {
my $ret_set_interface = $api->cmd( '/interface/ethernet/set', { '.id' => $interfaces[0]->{'.id'}, 'name' => $ARGV[1] } );
print "Name changed\n";
}
$api->logout();
eg/set_identity.pl
#!/usr/bin/perl
use strict;
use warnings;
### Example for method cmd(): set identity of router by command line
use MikroTik::API;
if ( not defined $ARGV[0] ) {
die 'USAGE: $0 <new name>';
}
my $api = MikroTik::API->new({
host => 'mikrotik.example.org',
username => 'whoami',
password => 'SECRET',
use_ssl => 1,
});
my $ret_set_identity = $api->cmd( '/system/identity/set', { 'name' => $ARGV[0] } );
print "Name set\n";
$api->logout();