×
Покер бот на Ruby on Rails (12 сен 2018)

Третья ипостась покера на ruby. Искреннее спасибо всем, кто прислал замечания по предыдущим релизам.

Вопрос Скрипт для массового изменения конф. свичей Zyxel

Больше
7 года 5 мес. назад #1 от Jannet
Оригинал статьи размещен на lissyara.su.
#!/usr/local/bin/perl

use Time::HiRes;
use Net::Telnet;

$user = "admin";
$pass = "1234";

open (IPLIST, "iplist");
open (WRFILE, ">>zyxel.log");

while ($host = <IPLIST>) 
{
    $th = new Net::Telnet(Timeout => 15, Telnetmode => 1,Errmode => "return");

    print "======================= START =======================\n";
    print "[+] Connectiong to: ".$host."\n";
    print "=====================================================\n";
    
    print WRFILE "======================= START =======================\n";
    print WRFILE "[+] Connectiong to: ".$host."\n";
    print WRFILE "=====================================================\n";
    
    $th->open($host);

    $th->waitfor('/ser name:.*$/');
    $th->print($user);

    $th->waitfor('/assword:.*$/');
    $th->print($pass);

    $th->waitfor('/#.*$/');

    open (COMMANDS, "commands");

    while ($cmds = <COMMANDS>) 
    {
            $th->print($cmds);
                @out = $th->waitfor('/#.*$/');
        print @out;
        print WRFILE @out;
    }
   
    close(COMMANDS);

    print "\n===================  END  ===================\n\n\n";
    print WRFILE "\n===================  END  ===================\n\n\n";
    Time::HiRes::sleep(10);
}

close(WRFILE);
close(IPLIST);

Скрипт работает следующим образом, берет IP или hostname из файла iplist:
192.168.176.59
192.168.176.91
192.168.176.93
192.168.176.94
192.168.176.68
192.168.176.16
192.168.176.17
192.168.176.18
192.168.176.19
192.168.176.21
...

...
192.168.176.47
192.168.176.45
192.168.176.44
192.168.176.38
192.168.176.34
192.168.176.27
По очереди заходит на каждый свич по телнету, и выполняет команды, находящиеся в файде commands, к примеру:
conf t
vlan 1
fixed 24-26
no untagged 24
exit
vlan 31
name Management
normal ""
fixed 24-26
no untagged 24
exit
...

...
vlan-trunking
bandwidth-limit ingress 1
bandwidth-limit egress 1
igmp-snooping filtering profile uplink
diffserv
exit
no port-security 24 learn inactive
no port-security 24
spanning-tree 24
mstp hello-time 3 maximum-age 40 forward-delay 30
mstp max-hop 40
mstp instance 0 interface port-channel 24
exit
wr mem

При исполнении скрипта ведется лог.

Еще немного - и я всему научусь. :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.