Facebook  -  Twitter      

Questo forum fa uso dei cookie
Questo forum utilizza i cookie per memorizzare i dettagli del tuo login o della tua ultima visita. I cookie sono piccoli files di testo salvati nel computer; i cookie da noi utilizzati sono relativi unicamente ai servizi da noi forniti direttamente o dai banner pubblicitari. I cookie su questo forum salvano inoltre i dettagli relativi alle discussioni lette e alle tue preferenze personali. Sei pregato di selezionare il tasto OKAY se sei consapevole della presenza di questi files e ci autorizzi ad utilizarli per le informazioni specificate.

Indipendentemente dalla tua scelta un cookie verrà salvato per memorizzare nel tuo pc la risposta a questo form. Puoi modificare le impostazioni relative ai cookie nelle preferenze del tuo browser.

  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[Mikrotik] Sync Address List from DNS Lookup Results - CNAME and A Records

#1
Information 
This script might come in handy if you're trying to use domain names in firewall rules. To use this script you might write a script like the one below and schedule it. Be sure to declare three globals first : ListName, Servers, and Done. ListName and Servers are needed so that we can simulate an argument list. Done is necessary so that independent calls of the script don't step on each other since they share the same globals.

This will work with CNAMEs and follow them until we get A Records.

Codice:
global ListName google_voice
:global Servers {"talkr.l.google.com"}
/system script run dnsToAddressList
This is the dnsToAddressList script:
Codice:
:global ListName

Codice:
:global Servers

Codice:
:global Done


Codice:
#has $Done been initialized?

Codice:
:if ([:typeof $Done] != "boolean") do={

Codice:
 :set Done true;

Codice:
}


Codice:
#make sure previous runs have finished

Codice:
while (!$Done) do={

Codice:
 :nothing;

Codice:
}


Codice:
#block any other runs

Codice:
:set Done false;


Codice:
#delete old address lists

Codice:
:foreach aListItem in=[/ip firewall address-list find list=$ListName] do={

Codice:
 /ip firewall address-list remove $aListItem;

Codice:
}


Codice:
:foreach aServer in=$Servers do={

Codice:
#force the dns entries to be cached

Codice:
 :resolve $aServer;


Codice:
 :foreach dnsRecord in=[/ip dns cache all find where (name=$aServer)] do={

Codice:
#if it's an A records add it directly

Codice:
   :if ([/ip dns cache all get $dnsRecord type]="A") do={

Codice:
      /ip firewall address-list add list=$ListName address=[/ip dns cache all get $dnsRecord data] comment=$aServer;

Codice:
   }


Codice:
#if it's a CNAME follow it until we get A records

Codice:
   :if ([/ip dns cache all get $dnsRecord type]="CNAME") do={

Codice:
     :local cname;

Codice:
     :local nextCname

Codice:
     :set cname [/ip dns cache all find where (name=$aServer && type="CNAME")];

Codice:
     :set nextCname [/ip dns cache all find where (name=[/ip dns cache all get $cname data] && type="CNAME")];


Codice:
     :while ($nextCname != "") do={

Codice:
         :set cname $nextCname;

Codice:
         :set nextCname [/ip dns cache all find where (name=[/ip dns cache all get $cname data] && type="CNAME")];

Codice:
       }

Codice:
 

Codice:
#add the a records we found

Codice:
   :foreach aRecord in=[/ip dns cache all find where (name=[/ip dns cache all get $cname data] && type="A")] do={

Codice:
     /ip firewall address-list add list=$ListName address=[/ip dns cache all get $aRecord data] comment=$aServer;

Codice:
     }

Codice:
   }

Codice:
 }

Codice:
}


Codice:
#allow other scripts to call this

Codice:
:set Done true

Cita messaggio


[-]
Condividi/Segnala (Mostra tutti)
Facebook Linkedin Twitter

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
Information [Mikrotik] Sync Address List with DNS Cache berryberry 0 809 17-06-2015, 11:42
Ultimo messaggio: berryberry
Information [Mikrotik] Add Static DHCP Leases to ARP List berryberry 0 516 17-06-2015, 10:42
Ultimo messaggio: berryberry
Information [Mikrotik] Using Fetch and Scripting to add IP Address Lists berryberry 0 405 16-06-2015, 08:45
Ultimo messaggio: berryberry
Information [Mikrotik] Random MAC/Ethernet address generate and apply berryberry 0 328 15-06-2015, 11:55
Ultimo messaggio: berryberry
Information [Mikrotik] Sending your self an e-mail with DSL interface IP address berryberry 0 358 09-06-2015, 10:57
Ultimo messaggio: berryberry

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Utenti che stanno guardando questa discussione:
1 Ospite(i)


Powered by MyBB, © 2002-2017 MyBB Group.