+ Responder ao Tópico



  1. #1

    Padrão Ajuda script de integração Mikrotik - VIGO

    Salve galera Under.

    No provedor que trabalho recentemente implantamos o VIGO, creio que muitos aqui já conheçam, pois bem trabalho com Hotspot IPs válidos e dinâmicos tudo funciona legal, porém alguns clientes por necessidades especiais não podem passar pelo Hotspot pois usam equipamentos especiais, por exemplo uma empresa de Onibus que usa uma maquininha de cartão para venda de passagens, não se tem interface web para que o usuario possa colocar usuário e senha.

    Para resolver isso eu Adiciono uma entrada no ip-binding com uma sintaxe mais ou menos assim:

    Código :
    /ip hotspot ip-binding add address=187.xxx.xxx.10 to-address=187.xxx.xxx.10 mac-address=00:11:22:33:44:55 server=all type=bypassed disabled=no;
    Tenho também que criar uma Simple Queue estática:

    Código :
    / queue simple add name="[email protected]" target-addresses=187.xxx.xxx.10/32 \ 
    dst-address=0.0.0.0/0 interface=all parent=none priority=8 \ 
    queue=default/default limit-at=64000/128000 \ 
    max-limit=64000/128000 burst-limit=128000/256000 \ 
    burst-threshold=48000/96000 burst-time=10s/10s total-queue=default disabled=no
    Até ai tudo bem.
    O vigo tem uma opção de IP MAC onde é feito o cadastro e depois pode ser enviado para o gateway mikrotik, a saida que o VIGO gera e envia para o gateway é essa:
    Código :
    :local ipaddr; 
    :set ipaddr [/ip arp find address=187.95.233.10] 
    :if ( $ipaddr != "" ) do={/ ip arp remove $ipaddr} 
     
    :set ipaddr [/queue simple find target-addresses=187.95.233.10/32] 
    :if ( $ipaddr != "" ) do={/ queue simple remove $ipaddr} 
     
    / ip arp add address=187.95.233.10 mac-address=00:11:22:33:44:55 interface=mac disabled=no 
     
    / queue simple add name="[email protected]" target-addresses=187.95.233.10/32 \ 
    dst-address=0.0.0.0/0 interface=all parent=none priority=8 \ 
    queue=default/default limit-at=64000/128000 \ 
    max-limit=64000/128000 burst-limit=128000/256000 \ 
    burst-threshold=48000/96000 burst-time=10s/10s total-queue=default disabled=no 
     
    / file remove individual_arp.rsc
    Isso é salvo em um arquivo com o nome individual_arp.rsc
    Pensei que como tenho essas informações poderia adaptar um script meu para adicionar no ip-binding. Quase deu certo ja consigo pegar os valores que me interessam adiciona a Queue, mover ela de lugar, porem adicionar no ip-binding não vai, será que estou errando a sintaxe em alguma coisa?

    Segue o código do meu script:

    Código :
    :global content [/file get [/file find name=individual_arp.rsc ] contents] ;
     
    :global contentLen [ :len $content ] ;
     
    :global valorIP "";
     
    :global valorMAC "";
     
    :global valorQUEUE "";
     
    :global valorNOME "";
     
    :global inicioIP 0;
     
    :global fimIP 0;
     
    :global inicioMAC 0;
     
    :global fimMAC 0;
     
    :global inicioQUEUE 0;
     
    :global fimQUEUE 0;
     
    :global inicioNOME 0;
     
    :global fimNOME 0;
     
    # Pega o IP
     
    :set inicioIP [:find $content "target-addresses" 0 ] ;
     
    :set fimIP [:find $content "/32" 0 ] ;
     
    :set valorIP [:pick $content ($inicioIP +17) $fimIP ] ;
     
    #Pega o MAC
     
    :set inicioMAC [:find $content "mac-address=" 0 ] ;
     
    :set fimMAC [:find $content "interface=mac" 0 ] ;
     
    :set valorMAC [:pick $content ($inicioMAC +12) $fimMAC ] ;
     
    #Pega o Queue
     
    :set inicioQUEUE [:find $content "name=" 0 ] ;
     
    :set fimQUEUE [:find $content "default disabled=no" 0 ] ;
     
    :set valorQUEUE [:pick $content ($inicioQUEUE -19) ($fimQUEUE +19) ] ;
     
    #Pega o Nome
     
    :set inicioNOME [:find $content "name=" 0 ] ;
     
    :set fimNOME [:find $content "\" target-addresses" 0 ] ;
     
    :set valorNOME [:pick $content ($inicioNOME +6) ($fimNOME) ] ;
     
    #Adiciona Simple Queue
     
    :execute $valorQUEUE;
     
    #Move para a ordem certa da Queues
     
    :delay 2;
     
    /queue simple move $valorNOME 0;
     
    #Adiciona uma entrada no hotspot ip-binding
     
    :delay 2;
     
    /ip hotspot ip-binding add mac-address=$valorMAC address=$valorIP to-address=$valorIP server=all type=bypassed disabled=no;
    Última edição por marcelovoax; 16-04-2010 às 11:10.