Si 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}"
Hola! Es reconfortante leer post sobre programación mikrotik de nuevo!
Estoy realmente interesado en temas sobre Mikrotik, y especialmente sobre la programación API en php… Estaré atento a ello. Gracias!
hola que tal buenas tardes mira estoy mirando este post pero no me esta ejecutado el script, podrias colocar mejor un export de las reglas de mikoritk o un archivo en .txt, una pregunta mas, que versión es el mikrotik ?
Saludos
Cristian; El problema es que se importa desde la consola.
Ingresa primero en «system».. luego en «scripts».
y luego pegas el codigo.!! si no te anda avisame!.
Lo puse como script y lo corrí, peor no me genere la lista de ips 🙁
Tenes que ejecutando cada 5 o 10 minutos. Por otro lado, tenes el cache de DNS de tu RouterOS habilitado?. Ojo. Comenzar por ahi! Saludos.
muy bueno y funciona bien, para mi gusto le falta una cosa, a final del script tendría que revisar si la lista vieja todavia existe o sea si los dominios puestos anteriormente todavia son validos para no acumular ip.
Whatsapp provee una lista de IPs en formato CIDR.
Creo que es más fácil
https://www.whatsapp.com/cidr.txt
Excelente aporte Diego, Vi que lo publicó Maxi en su blog. Esto si que nos ahorra procesador!!! jaja. Saludos.
Hola, me parece excelente tu aporte pero lo estoy ejecutando en Mikrotik V6.35.2 y no me agrega ninguna Ip a Adress List
Por favor ayuda!!
Corregido!. Intentar copiar y pegar nuevamente en consola. «Por favor presione ENTER al terminar de pegar»
Lo acabo de hacer y no me funciona
Darlin, ese Script es viejo, te invito a que veas otro post donde publique el CIDR completo de direcciones de Whatsapp. No uses el script. Agrega y filtra los bloques completos. Saludos
Hola … Estupendo aporte, el script funciona muy bien, pero hay que ponerlo en un Schedule para ejecutarse periodicamebnte…. en mi caso, lo use no para bloquear whatsapp, sino al revés , únicamente se permite el tráfico de Whatsapp, y ninguno más.. como dije me funciona muy bien, sin embargo, tengo un problemilla.. cuando las llamadas de voz y video, sales no hay problema, pero cuando son entrantes, el host remoto que llama escucha el audio, pero el host local no escucha el audio… alguien tiene alguna idea???
aplique esta regla de firewalll: chain: forward, protocolo:tcp, src-address-list: !whatsap-dns-list, acction:drop, in-interface:wan
Hacelo con TLS-Host, fijate que hay un post para eso. Slds.