Indice   FAQ  
Iscriviti  Login
Indice RouterOS RouterOS

Script di update no-ip

Tutto su questo sistema operativo linux based - Configurazioni, dubbi, problematiche &....

Script di update no-ip

Messaggioda lalo » mer 9 apr 2014, 20:36

Buona sera a tutti,
Sto cercando di far funzionare uno script che mi aggirna i record dns.
Lo script funziona se uso l' apparato come router perche un interfaccia è quella di wan ma se io voglio utilizzare lo script in una rete dove il mikrotik è un AP per esempio il record che mi va ad aggiornare è l' indirizzo ip dell' interfaccia LAN che gli vado ad impostare.

Sostanzialmente attualmente questo script mi aggiorna anzichè l' indirizzo pubblico mi aggiorna il 10.1.0.30 che è l' indirizzo LAN dell' AP.

Cosa sto sbagliando?


Grazie a tutti

Codice: Seleziona tutto
#------------------------------------------------------------------------------------
#                SCRIPT No-Ip
#------------------------------------------------------------------------------------
# No-IP automatic Dynamic DNS update

#--------------- Change Values in this section to match your setup ------------------

# No-IP User account info
:local noipuser "username"
:local noippass "password"

# 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 "hostname.no-ip.biz"

# Name of interface that gets the dynamic IP address
#ITS A LAN INTERFACE THAT GET AN IP WITH DHCP <---- THATS THE PROBLEM
:local inetinterface "ether2-master-local"

#------------------------------------------------------------------------------------

:global previousIP

:if ([/interface get $inetinterface value-name=running]) do={
       /tool fetch url="http://myip.dnsomatic.com/" mode=http dst-path=mypublicip.txt
       :set $currentIP [file get mypublicip.txt contents]
}

   :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."
}
lalo
Mikrotik-User 10° Liv
Mikrotik-User 10° Liv
 
Messaggi: 55
Iscritto il: lun 25 giu 2012, 19:17

Re: Script di update no-ip

Messaggioda xanio » mer 9 apr 2014, 21:52

Analizzando lo script sembra corretto, interroga la pagina e scrive il risultato nel file mypubblicip.txt e poi lo copia nella variabile $currentIP.

Poi verifica se il $currentIP è diverso da $previousIP, quindi è sempre vuota, in quanto non settata prima, ma solo dichiarata, procede con l'aggiornamento dell'host dns settando il current ip.

Devi vedere cosa ti scrive nel file TXT, oppure se è presente qualche altro valore oltre all'ip pubblico.

Fatto la prova con una RB a casa mia, e funziona, considerando che ho messo due router in cascata con maquarade INTERNET -> RB -> LAN1 -> RB.
---
MTCNA - MTCRE
Avatar utente
xanio
Staff rosIT
Staff rosIT
 
Messaggi: 1054
Iscritto il: lun 31 ott 2011, 18:15
Località: Sicilia
Uso routerOS dalla Versione: v4.x
Certificazioni Mikrotik: MTCNA - MTCRE
Altre certificazioni: Milestone - Yeastar - Cambium
Preferred Training Centre: Grifonline



Torna a RouterOS

Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti