Beberapa waktu lalu saya membuat script Mikrotik untuk memeriksa IP address yang didapatkan dari ISP ( lihat artikel disini).
Nah berikut ini saya rubah sedikit scriptnya menjadi seperti berikut:
##Cek alokasi IP versi 2
:local WanInt "pppoe-Indi10";
:local privIP true;
:local maxCount 5;
:local loopCount 0;
:while ( $privIP ) do={
:local NewIP [/ip address get [find interface=$WanInt] address];
:set NewIP [:pick $NewIP 0 ([:len $NewIP]-3)];
:local test [:pick $NewIP 0 [:find $NewIP "."]];
:if (($test = "10")||($test = "192")) do={
:set loopCount ($loopCount+1);
/interface pppoe-client set $WanInt disabled=yes;
:delay 2;
/interface pppoe-client set $WanInt disabled=no;
:log info "BAD wanip $loopCount";
:delay 10;
:if ($loopCount > $maxCount) do={
:set $privIP true;
}
} else={
:set $privIP false;
:log info "GOOD wanip $loopCount";
}
}
Seperti yang terlihat, pada script versi 2 ini ada penambahan looping pengecekan IP.
Looping akan berhenti jika sudah mendapatkan IP publik atau $maxLoop sudah tercapai.
Dan maxLoop ini untuk menjaga agar tidak terjadi looping yang terus menerus karena tidak juga didapatkan IP publik. Kalau hal ini terjadi pengecekan akan dilanjutkan sesuai dengan interfal waktu pada scheduler.
Semoga bermanfaat. Happy coding !!