Скрипт No-ip

Тема в разделе "Скрипты", создана пользователем Михаил, 7 авг 2015.

  1. Михаил

    Михаил Новый участник

    Здравствуйте.
    Используем OpenVPN для смены внешнего адреса. Понятно, что внешний адрес меняется при перезагрузке роутера. Хотим привязать noip.org.
    В сети есть скрипт:
    #--------------- Change Values in this section to match your setup ------------------

    # No-IP User account info
    :local noipuser "user"
    :local noippass "pass"

    # Set the hostname or label of network to be updated.
    # Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names.
    # To specify multiple hosts, separate them with commas.
    :local noiphost "jumperext.ddns.net"

    # Change to the name of interface that gets the dynamic IP address
    :local inetinterface "OpenVPN"

    #------------------------------------------------------------------------------------
    # No more changes need

    :global previousIP

    :if ([/interface get $inetinterface value-name=running]) do={
    # Get the current IP on the interface
    :local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address]

    # Strip the net mask off the IP address
    :for i from=( [:len $currentIP] - 1) to=0 do={
    :if ( [:pick $currentIP $i] = "/") do={
    :set currentIP [:pick $currentIP 0 $i]
    }
    }

    :if ($currentIP != $previousIP) do={
    :log info "No-IP: Current IP $currentIP is not equal to previous IP, update needed"
    :set previousIP $currentIP

    # The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
    :local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP"
    :local noiphostarray
    :set noiphostarray [:toarray $noiphost]
    :foreach host in=$noiphostarray do={
    :log info "No-IP: Sending update for $host"
    /tool fetch url=($url . "&hostname=$host") user=$noipuser password=$noippass mode=http dst-path=("no-ip_ddns_update-" . $host . ".txt")
    :log info "No-IP: Host $host updated on No-IP with IP $currentIP"
    }
    } else={
    :log info "No-IP: Previous IP $previousIP is equal to current IP, no update needed"
    }
    } else={
    :log info "No-IP: $inetinterface is not currently running, so therefore will not update."
    }

    Вроде бы все хорошо. Но скрипт отдает неверное значение IP-адреса.
    Сейчас внешний IP 94.100.16.X, а скрипт отдает 10.200.1.9.
    В чем может быть трабл?
    Спасибо.
     
  2. Илья Князев

    Илья Князев Администратор Команда форума

  3. Михаил

    Михаил Новый участник

    Я бы с радостью, но Cloud берет IP-адрес от ether1-gateway, а надо от OpenVPN. Т.е. там нельзя изменить значение IP-адреса.
     
  4. Илья Князев

    Илья Князев Администратор Команда форума

    хм. А на интерфейсе какой IP висит ?
     
  5. Михаил

    Михаил Новый участник

    На ether1-gateway IP провайдера, динамический. А на интерфейсе OpenVPN статический внешний.
     
  6. Илья Князев

    Илья Князев Администратор Команда форума

    Если он статический и внешний, зачем вам скрипт ?
     
  7. Михаил

    Михаил Новый участник

    Блин, запутался. Оба динамические.
     
  8. Илья Князев

    Илья Князев Администратор Команда форума

    по идее на ppp соединении два адреса. Один сервера и один клиента. Какой у вас в /ip addresses светится, при подключенном туннеле ?