Почерпнул идею и список хостов отсюда, и решил здесь и поделиться. Скрипт для микротика:
{
:local listname "hosts_permit";
:local newip;
:local ips;
:local globips;
:local doloop true;
:local thehosts {"www.liqpay.com";
"liqpay.com";
"static.liqpay.com";
"ecommerce.liqpay.com";
"fonts.googleapis.com";
"ajax.googleapis.com";
"themes.googleusercontent.com";
"www.google-analytics.com";
"google-analytics.com";
"ssl.google-analytics.com";
"widget.siteheart.com";
"client.siteheart.com";
"clients.siteheart.com";
"static.siteheart.com";
"seal.globessl.com";
"globessl.com";
"privat24.ua";
"www.privat24.ua";
"privat24.privatbank.ua";
"privatbank.ua";
"qrapi.privatbank.ua";
"api.privatbank.ua";
"stats.g.doubleclick.net";
"www.googleadservices.com";
"fonts.gstatic.com";
"login.privatbank.ua"};
/ip firewall address-list remove [find list=$listname];
:foreach hostname in=$thehosts do={
:set ips;
:set doloop true;
:do {
:set newip [:resolve $hostname];
:if ( ("|" . [:find $ips $newip -1] . "|") = "||" ) do={
:set ips ($ips, $newip);
} else={
:set doloop false;
}
} while=( $doloop );
:foreach ti in=$ips do={
:if ( ("|" . [:find $globips $ti -1] . "|") = "||" ) do={
/ip firewall address-list add address=$ti list=$listname comment=$hostname;
} else={
/ip firewall address-list set [find address=$ti list=$listname] comment=( [/ip firewall address-list get [find address=$ti list=$listname] comment] . ", " . $hostname);
}
:set globips ($globips, $ti);
}
}
}