Tech-nico.com

Mikrotik Script: Marcar y controlar trafico de whatsapp por DNS

whatsappSi queremos controlar el ancho de banda de whatsapp por QoS o dropear o simplemente dejar pasar este trafico, podemos ejecutar este maravilloso script desde nuestro RouterOS, que recolecta las IP que usa esta aplicación de mensajería.

Las IP que recolecta realmente son MUCHAS!.

 
Entonces, pegamos este codigo en la consola de comandos de routerOS y luego lo configuramos en el scheduler para que se ejecute cada 2 minutos. (o menos, dependiendo del procesador de tu equipo).
 

/system script add name=whatsapp policy=read,write,policy source="# chequear las entradas al \
    DNS\r\
    \n:foreach i in=[/ip dns cache find] do={\r\
    \n:local bNew \"true\";\r\
    \n:local cacheName [/ip dns cache all get \$i name] ;\r\
    \n# Revisar el DNS si contiene cadenas whatsapp\r\
    \n:if ([:find [/ip dns cache get \$i name] \"whatsapp\"] > 0) do={\r\
    \n:local tmpAddress [/ip dns cache get \$i address] ;\r\
    \n#---- Si address list esta vacio, no lo chequeo ( add address directly )\
    \r\
    \n:if ( [/ip firewall address-list find ] = \"\") do={\r\
    \n/ip firewall address-list add address=\$tmpAddress list=whatsapp_dns_ips\
    \_disabled=no comment=\$cacheName; \r\
    \n} else={\r\
    \n#------- chequeo cada entrada del address-list para no repetir las ips\r\
    \n:foreach j in=[/ip firewall address-list find ] do={\r\
    \n#---------- set bNew variable to false if address exists in address list\
    \r\
    \n:if ( [/ip firewall address-list get \$j address] = \$tmpAddress ) do={\
    \r\
    \n:set bNew \"false\";\r\
    \n}\r\
    \n}\r\
    \n#------- Si la direccion (IP) es nueva, la agrego al ADDRESS-LIST\r\
    \n:if ( \$bNew = \"true\" ) do={\r\
    \n/ip firewall address-list add address=\$tmpAddress list=whatsapp_dns_ips\
    \_disabled=no comment=\$cacheName; \r\
    \n}\r\
    \n}\r\
    \n}\r\
    \n}"
Salir de la versión móvil