+ Responder ao Tópico



  1. #1

    Padrão Script DNS para ChangeIp e DynDNS

    Devido á grande dificuldade que tive , para encontrar scripts a funcionar, imagino que muitos dever estar na mesma situação, então posto aqui:



    ChangeIp (Alterar 4 primeiras linhas)

    Código PHP:
    :global ddnsuser "METES NOME"
    :global ddnspass "METES PASSWORD"
    :global ddnshost "EXEMPLO.ddns.info"
    :global ddnsinterface "pppoe-out2"
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # END OF USER DEFINED CONFIGURATION
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    :global ddnssystem ("mt-" . [/system package get [/system package find name=systemversion] )
    :global 
    ddnsip [ /ip address get [/ip address find interface=$ddnsinterfaceaddress ]
    :global 
    ddnslastip
    :if ([:len [/interface find name=$ddnsinterface]] = ) do={ :log info "DDNS: No interface named $ddnsinterface, please check configuration." }
    :if ([ :
    typeof $ddnslastip ] = "nothing" ) do={ :global ddnslastip 0.0.0.0/}
    :if ([ :
    typeof $ddnsip ] = "nothing" ) do={
    :
    log info ("DDNS: No ip address present on " $ddnsinterface ", please check.")
    } else={
      :if (
    $ddnsip != $ddnslastip) do={
        :
    log info "DDNS: Enviado UPDATE!"
        
    :log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ] ]
        :global 
    ddnslastip $ddnsip
      
    } else={ 
        :
    log info "DDNS: Nao Necessita Ser Alterado."
      
    }
    }
    # END OF SCRIPT 



    Dyndns ( Alterar 4 primeiras linhas)

    Código PHP:
    :local ddnsuser "METES NOME"
    :local ddnspass "METES PASSWORD"
    :local theinterface "pppoe-out2"
    :local ddnshost "EXEMPLO.mine.nu"
    :local ipddns [:resolve $ddnshost];
    :
    local ipfresh [ /ip address get [/ip address find interface=$theinterface address ]
    :if ([ :
    typeof $ipfresh ] = nil ) do={
       :
    log info ("DynDNS: No ip address on $theinterface .")
    } else={
       :for 
    i from=( [:len $ipfresh] - 1to=do={ 
          :if ( [:
    pick $ipfresh $i] = "/") do={ 
        :
    set ipfresh [:pick $ipfresh 0 $i];
          } 
    }
     
    :if (
    $ipddns != $ipfresh) do={
        :
    log info ("DynDNS: IP-DynDNS = $ipddns")
        :
    log info ("DynDNS: IP-Fresh = $ipfresh")
       :
    log info "DynDNS: Update IP needed, Sending UPDATE...!"
        
    :local str "/nic/update?hostname=$ddnshost&myip=$ipfresh&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
        
    /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
        :
    delay 1
        
    :local str [/file find name="DynDNS.$ddnshost"];
        /
    file remove $str
        
    :global ipddns $ipfresh
      
    :log info "DynDNS: IP alterado para $ipfresh!"
        
    } else={
         :
    log info "DynDNS: Nao Necessita Ser Alterado";
        }


  2. #2

  3. #3

    Padrão

    Mais uma contribuição...

    Uso na versão 3.xx, bem simples e funcional!

    Código PHP:

    /tool dns-update name=exemplo.changeip.org address=127.0.0.255 key-name=seu_user key=sua_senha 
    Espero ajudar!

    Abraços
    Última edição por cduarte; 23-03-2010 às 09:52.

  4. #4

    Padrão

    Fiquei meu confuso.

    O código está em PHP. Ele vai ser reconhecio diretamente pelo mikrotik?
    É só adaptar para minha necessidade e colar no new terminal?

  5. #5

    Padrão

    1929,

    Coloquei em php para ficar mais fácil de copiar.

    Segue o script e o scheduler.

    /system script
    add name=DDNS policy=ftp,reboot,read,write,policy,test,winbox source="/tool dns-update name=exemplo.changeip.org address=127.0.0.255 key-name=seu_user key=sua_senha"

    /system scheduler
    add comment="ATUALIZAR IP DDNS" disabled=no interval=5m name=DDNS on-event="/system script run DDNS" start-date=jan/01/1970 start-time=00:00:00

    Abraços.

  6. #6

    Padrão

    Se alguem precisar para versão 4.x , segue o script contando que já tenha uma conta no changeip.og.

    /tool dns-update name=seu server.changeip.org address=127.0.0.255 key-name=seu usuario key="sua senha"
    [/tool dns-update ]

    Nota que só houve apenas uma alteração que está destacado em vermelho em relação ao script anterior.

    Espero ter ajudado

  7. #7

    Padrão re: Script DNS para ChangeIp e DynDNS

    caraca cduarte, depois de testar mais de 1 milhoes de script, esse seu funcionou!!! SHOW DE BOLA!!! parabens!!!!

  8. #8

    Padrão re: Script DNS para ChangeIp e DynDNS

    muito grande comtribuicao...esse scrit funcionas nas versoe mais novas
    thiago net

  9. #9

    Padrão re: Script DNS para ChangeIp e DynDNS

    Excelentes contribuições dos dois, mas a do agnaldo52 é bem mais simples.. parabéns aos dois..

  10. #10

    Padrão re: Script DNS para ChangeIp e DynDNS

    Citação Postado originalmente por dipsilva Ver Post
    Excelentes contribuições dos dois, mas a do agnaldo52 é bem mais simples.. parabéns aos dois..
    Na verdade é a mesma do cduarte, apenas com a inclusão de mais uma linha.

  11. #11

    Padrão re: Script DNS para ChangeIp e DynDNS

    Ola a todos este script e para acesso externo ddns pelo no-ip? estou com um cliente que precis deste serviço e nao encontro solução para meu mikrotik pc x86 com hotspot e ip fixo em cliente.
    Alguem pode me ajudar?
    Preciso fazer que ele acesse externamente atravez do endereço do no-ip, aguardo respostas!

  12. #12

    Padrão re: Script DNS para ChangeIp e DynDNS

    Ola a todos este script e para acesso externo ddns pelo no-ip? estou com um cliente que precis deste serviço e nao encontro solução para meu mikrotik pc x86 com hotspot e ip fixo em cliente.<br>Alguem pode me ajudar?<br>Preciso fazer que ele acesse externamente&nbsp;atravez do endereço do no-ip, aguardo respostas!

  13. #13

    Thumbs up re: Script DNS para ChangeIp e DynDNS

    Show de bola, mesmo seguindo o que tem no Wiki do MK, esse minusculo ficou 100% parabéns pela ajuda!

    Abraço!

  14. #14

    Padrão re: Script DNS para ChangeIp e DynDNS

    Citação Postado originalmente por cduarte Ver Post
    Mais uma contribuição...

    Uso na versão 3.xx, bem simples e funcional!

    Código PHP:

    /tool dns-update name=exemplo.changeip.org address=127.0.0.255 key-name=seu_user key=sua_senha 
    Espero ajudar!

    Abraços

    esse tbm funciona na versão 5 eu uso ele aqui rs

  15. #15

    Padrão Re: Script DNS para ChangeIp e DynDNS

    Tem esse para funcionar com NO-IP tbm, é bem parecido com o do DynDNS.

    Código :
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # DEFINA SUA CONFIGURAÇÕES AQUI
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    # Interface para obtenção do endereço IP
    :global dsninterface ""
     
    # O nome do host para atualização
    :global dnshost ""
     
    # Login da sua conta NO-IP
    :global dnsuser ""
     
    # Sua senha da conta NO-IP
    :global dnspass ""
     
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # FIM DAS CONFIGURAÇÕES
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # DEFINIÇÃO DAS VARIÁVEIS GLOBAIS
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    # Receberá o IP da interface configurada acima
    :global dnsip
     
    # Vamos usar para saber se é necessário ou não atualizar o host
    :global dnslastip
     
    # Endereço NO-IP para atualização do host
    :global src "/nic/update?hostname=$dnshost&amp;&myip=$dnsip"
     
    :global dnsip [ /ip address get [ /ip address find interface=$dsninterface ] address ]
     
    :if ( [ :typeof $dnslastip ] = "nothing" ) do={ :global dnslastip 0.0.0.0/0 }
     
    :if ( $dnsip != $dnslastip ) do={
      :log info "Enviando atualização..."
      /tool fetch address="dynupdate.no-ip.com" src-path=$src mode=http user=$dnsuser password=$dnspass dst-path=("/DDNS-NoIP.".$dnshost)
      :log info "Host atualizado com sucesso!"
     
      :delay 1
      :local str [/file find name="/DDNS-NoIP.".$dnshost];
      /file remove $str
     
      :global dnslastip $dnsip
    } else={
      :log info "Não é necessário atualizar!"
    }

  16. #16

    Padrão Re: Script DNS para ChangeIp e DynDNS

    Citação Postado originalmente por agnaldo52 Ver Post
    Se alguem precisar para versão 4.x , segue o script contando que já tenha uma conta no changeip.og.

    /tool dns-update name=seu server.changeip.org address=127.0.0.255 key-name=seu usuario key="sua senha"
    [/tool dns-update ]

    Nota que só houve apenas uma alteração que está destacado em vermelho em relação ao script anterior.

    Espero ter ajudado

    ------------------------------------------------------------------------------------------------------------

    Pessoal, tem alguem que esta com problemas nesse script do changeip? desde sempre eu usei esse script, agora o site changeip fez uma atualizaçao e meus MK nao funcionam (nao atualiza os ips). alguem esta com esse problema?

    blz valeu galera.
    Última edição por pedrobrother; 14-01-2013 às 11:53.

  17. #17

    Padrão Re: Script DNS para ChangeIp e DynDNS

    Citação Postado originalmente por pedrobrother Ver Post
    ------------------------------------------------------------------------------------------------------------

    Pessoal, tem alguem que esta com problemas nesse script do changeip? desde sempre eu usei esse script, agora o site changeip fez uma atualizaçao e meus MK nao funcionam (nao atualiza os ips). alguem esta com esse problema?

    blz valeu galera.
    Me deparei com este problema também, aqui uso este:

    Código :
    # Dynamic DNS Update / Simple Edition
    # Written by Sam Norris, ChangeIP.com
    # Copyright ChangeIP.com 2009-2010
    # For support send mail to [email protected]
    #
    # 2009-06-22 RouterOS 3.25 Tested
    # 2009-10-05 RouterOS 4.01rc1 Tested
    #
    # OVERVIEW:         %
    #  This script will update a ChangeIP.com dynamic dns hostname
    #  with an ip address located directly on an interface.
    #                   %
    # NOTES:            %
    #  IF THIS SCRIPT DOES NOT PRODUCE ANY OUTPUT PLEASE COPY AND PASTE IT
    #  AGAIN.  THERE PROBABLY IS A LINE BREAK IN THE WRONG PLACE! Once you
    #  have created this script and tested that it works by running it
    #  manually you can schedule it to run every few minutes.
    #                   %
    # CONFIGURATION FIELD DEFINITIONS:
    #  ddnsuser:  Enter your ChangeIP.com user id.
    #  ddnspass:  Enter your ChangeIP.com password.
    #  ddnshost:  Enter the hostname (www.example.com) to update.
    #  ddnsinterface:  Enter an interface name - case sensative.
    #                   %
    #                   %
    #                   %
    #                   %
    #               %   %   %
    #                %  %  %
    #                 % % %
    #                   %
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # EDIT YOUR DETAILS / CONFIGURATION HERE
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    :global ddnsuser "xxxxxxxxx"
    :global ddnspass "xxxxxxxxx"
    :global ddnshost "xxxxxx.ddns.info"
    :global ddnsinterface "pppoe-out1"
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # END OF USER DEFINED CONFIGURATION
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    :global ddnssystem ("mt-" . [/system package get [/system package find name=system] version] )
    :global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface] address ]
    :global ddnslastip
     
    :if ([:len [/interface find name=$ddnsinterface]] = 0 ) do={ :log info "DDNS: No interface named $ddnsinterface, please check configuration." }
     
    :if ([ :typeof $ddnslastip ] = "nothing" ) do={ :global ddnslastip 0.0.0.0/0 }
     
    :if ([ :typeof $ddnsip ] = "nothing" ) do={
     
    :log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.")
     
    } else={
     
      :if ($ddnsip != $ddnslastip) do={
     
        :log info "DDNS: Sending UPDATE!"
        :log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ] ]
        :global ddnslastip $ddnsip
     
      }
     
    }
     
    # END OF SCRIPT
    Log do Mikrotik => ddns error => timeout

  18. #18

    Padrão Re: Script DNS para ChangeIp e DynDNS

    Aqui estou fazendo o seguinte

    Em System/ scripts

    Name: DDNS


    /tool dns-update name=seuendereco.changeip.net address=127.0.0.255 key-name=usuario key=senha



    Depois só copiar e colar no terminal:

    /system scheduler
    add comment="" disabled=no interval=10m name=DDNS on-event=DDNS policy=\
    read,write,policy,test,sniff,sensitive start-time=startup


    Obs. Ele está configurado para atualizar a cada 10min, se caso queira mudar o tempo é só alterar o 10m para o tempo desejado...

    Este foi o unico jeito que consegui fazer funcionar com o changeIp





    Citação Postado originalmente por silviola Ver Post
    Me deparei com este problema também, aqui uso este:

    Código :
    # Dynamic DNS Update / Simple Edition
    # Written by Sam Norris, ChangeIP.com
    # Copyright ChangeIP.com 2009-2010
    # For support send mail to [email protected]
    #
    # 2009-06-22 RouterOS 3.25 Tested
    # 2009-10-05 RouterOS 4.01rc1 Tested
    #
    # OVERVIEW:         %
    #  This script will update a ChangeIP.com dynamic dns hostname
    #  with an ip address located directly on an interface.
    #                   %
    # NOTES:            %
    #  IF THIS SCRIPT DOES NOT PRODUCE ANY OUTPUT PLEASE COPY AND PASTE IT
    #  AGAIN.  THERE PROBABLY IS A LINE BREAK IN THE WRONG PLACE! Once you
    #  have created this script and tested that it works by running it
    #  manually you can schedule it to run every few minutes.
    #                   %
    # CONFIGURATION FIELD DEFINITIONS:
    #  ddnsuser:  Enter your ChangeIP.com user id.
    #  ddnspass:  Enter your ChangeIP.com password.
    #  ddnshost:  Enter the hostname (www.example.com) to update.
    #  ddnsinterface:  Enter an interface name - case sensative.
    #                   %
    #                   %
    #                   %
    #                   %
    #               %   %   %
    #                %  %  %
    #                 % % %
    #                   %
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # EDIT YOUR DETAILS / CONFIGURATION HERE
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    :global ddnsuser "xxxxxxxxx"
    :global ddnspass "xxxxxxxxx"
    :global ddnshost "xxxxxx.ddns.info"
    :global ddnsinterface "pppoe-out1"
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # END OF USER DEFINED CONFIGURATION
    # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    :global ddnssystem ("mt-" . [/system package get [/system package find name=system] version] )
    :global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface] address ]
    :global ddnslastip
     
    :if ([:len [/interface find name=$ddnsinterface]] = 0 ) do={ :log info "DDNS: No interface named $ddnsinterface, please check configuration." }
     
    :if ([ :typeof $ddnslastip ] = "nothing" ) do={ :global ddnslastip 0.0.0.0/0 }
     
    :if ([ :typeof $ddnsip ] = "nothing" ) do={
     
    :log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.")
     
    } else={
     
      :if ($ddnsip != $ddnslastip) do={
     
        :log info "DDNS: Sending UPDATE!"
        :log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ] ]
        :global ddnslastip $ddnsip
     
      }
     
    }
     
    # END OF SCRIPT
    Log do Mikrotik => ddns error => timeout

  19. #19

    Padrão Re: Script DNS para ChangeIp e DynDNS

    Amigo Eduardi

    esse script serve na distribuição Mikrotik OS x86 5.20?????