Code: Select all
# feb/03/2023 13:21:43 by RouterOS 6.48.6
# software id = 8MWI-YYY1
#
# model = RB750Gr3
# serial number = D5030E32FB8F
/interface bridge
add name=BRIDGE-LAN
/interface ethernet
set [ find default-name=ether1 ] advertise=1000M-full name=1-ISP-PLDT
set [ find default-name=ether2 ] name=2-ISP-GOMO-GLOBE
set [ find default-name=ether3 ] name=3-ISP-SMART
/interface l2tp-client
add add-default-route=yes allow-fast-path=yes connect-to=192.46.229.235 \
disabled=no keepalive-timeout=disabled name=l2tp-out1 use-ipsec=yes user=\
vpnuser
add allow-fast-path=yes connect-to=SERVER_IP keepalive-timeout=disabled \
name=l2tp-out2 use-ipsec=yes user=vpnuser
/interface vlan
add interface=BRIDGE-LAN name=Guest vlan-id=10
add interface=BRIDGE-LAN name=TEST_VOUCHER_VLAN vlan-id=20
add interface=BRIDGE-LAN name=VOUCHER_HOTSPOT_VLAN21 vlan-id=21
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip hotspot profile
set [ find default=yes ] html-directory=flash login-by=\
mac,cookie,http-chap,https
add dns-name=pisowifi.home hotspot-address=10.0.3.1 html-directory=\
flash/hotspot login-by=mac,cookie,http-chap,http-pap name=hsprof2
add dns-name=voucherhotspot.wifi hotspot-address=10.0.3.1 html-directory=\
flash/hotspot name=hsprof3
add dns-name=voucherhotspot.wifi hotspot-address=10.0.4.1 html-directory=\
flash/hotspot name=hsprof4
/ip hotspot user profile
set [ find default=yes ] on-login="### enable telegram notification, change fr\
om 0 to 1 if you want to enable telegram\r\
\n:local enableTelegram 1;\r\
\n###replace telegram token\r\
\n:local telegramToken \"\";\
\r\
\n###replace telegram chat id / group id\r\
\n:local chatId \"1428711220\";\r\
\n### enable Random MAC synchronizer\r\
\n:local enableRandomMacSyncFix 1;\r\
\n### hotspot folder for HEX put flash/hotspot for haplite put hotspot onl\
y\r\
\n:local hotspotFolder \"flash/hotspot\";\r\
\n\r\
\n\r\
\n:local com [/ip hotspot user get [find name=\$user] comment];\r\
\n/ip hotspot user set comment=\"\" \$user;\r\
\n\r\
\n:if (\$com!=\"\") do={\r\
\n\r\
\n\t:local mac \$\"mac-address\";\r\
\n\t:local host [/ip dhcp-server lease get [ find mac-address=\$mac ] host\
-name];\r\
\n\t:local macNoCol;\r\
\n\t:for i from=0 to=([:len \$mac] - 1) do={ \r\
\n\t :local char [:pick \$mac \$i]\r\
\n\t :if (\$char = \":\") do={\r\
\n\t\t:set \$char \"\"\r\
\n\t }\r\
\n\t :set macNoCol (\$macNoCol . \$char)\r\
\n\t}\r\
\n\t\r\
\n\t:local validity [:pick \$com 0 [:find \$com \",\"]];\r\
\n\t\r\
\n\t:if ( \$validity!=\"0m\" ) do={\r\
\n\t\t:local sc [/sys scheduler find name=\$user]; :if (\$sc=\"\") do={ :l\
ocal a [/ip hotspot user get [find name=\$user] limit-uptime]; :local c (\
\$validity); :local date [ /system clock get date]; /sys sch add name=\"\$\
user\" disable=no start-date=\$date interval=\$c on-event=\"/ip hotspot us\
er remove [find name=\$user]; /ip hotspot active remove [find user=\$user]\
; /ip hotspot cookie remove [find user=\$user]; /system sche remove [find \
name=\$user]; /file remove \\\"\$hotspotFolder/data/\$macNoCol.txt\\\";\" \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon; :\
delay 2s; } else={ :local sint [/sys scheduler get \$user interval]; :if (\
\_\$validity!=\"\" ) do={ /sys scheduler set \$user interval (\$sint+\$val\
idity); } };\r\
\n\t}\r\
\n\t\r\
\n\t:local infoArray [:toarray [:pick \$com ([:find \$com \",\"]+1) [:len \
\$com]]];\r\
\n\t\r\
\n\t:local totaltime [/ip hotspot user get [find name=\"\$user\"] limit-up\
time];\r\
\n\t:local amt [:pick \$infoArray 0];\r\
\n\t:local ext [:pick \$infoArray 1];\r\
\n\t:local vendo [:pick \$infoArray 2];\r\
\n\t:local uactive [/ip hotspot active print count-only];\r\
\n\t\r\
\n\t:local getIncome [:put ([/system script get [find name=todayincome] so\
urce])];\r\
\n\t/system script set source=\"\$getIncome\" todayincome;\r\
\n\r\
\n\t:local getSales (\$amt + \$getIncome);\r\
\n\t/system script set source=\"\$getSales\" todayincome;\r\
\n\r\
\n\t:local getMonthlyIncome [:put ([/system script get [find name=monthlyi\
ncome] source])];\r\
\n\t/system script set source=\"\$getMonthlyIncome\" monthlyincome;\r\
\n\r\
\n\t:local getMonthlySales (\$amt + \$getMonthlyIncome);\r\
\n\t/system script set source=\"\$getMonthlySales\" monthlyincome;\r\
\n\t\r\
\n\t:local validUntil [/sys scheduler get \$user next-run];\r\
\n\t\r\
\n\t/file print file=\"\$hotspotFolder/data/\$macNoCol\" where name=\"dumm\
yfile\"; \r\
\n\t:delay 1s; \r\
\n\t/file set \"\$hotspotFolder/data/\$macNoCol\" contents=\"\$user#\$vali\
dUntil\";\r\
\n\t:local extend\r\
\n\t:set extend \"YES\";\r\
\n\t:if (\$ext = \"0\") do={\r\
\n\t :set extend \"NO\";\r\
\n\t}\r\
\n\t\r\
\n\t:if (\$enableTelegram=1) do={\r\
\n\t\t:local vendoNew;\r\
\n\t\t:for i from=0 to=([:len \$vendo] - 1) do={ \r\
\n\t\t :local char [:pick \$vendo \$i]\r\
\n\t\t :if (\$char = \" \") do={\r\
\n\t\t\t:set \$char \"%20\"\r\
\n\t\t }\r\
\n\t\t :set vendoNew (\$vendoNew . \$char)\r\
\n\t\t}\r\
\n\r\
\n\t\t/tool fetch url=\"https://api.telegram.org/bot\$telegramToken/sendme\
ssage\?chat_id=\$chatId&text=<<======New Sales======>> %0A Vendo: \$vendoN\
ew %0A Voucher: \$user %0A IP: \$address %0A MAC: \$mac %0A Device: \$host\
\_%0A Amount: \$amt %0A Extended: \$extend %0A Total Time: \$totaltime %0A\
\_%0AToday Sales: \$getSales %0AMonthly Sales : \$getMonthlySales %0AActiv\
e Users: \$uactive%0A <<=====================>>\" keep-result=no;\r\
\n\t}\r\
\n\r\
\n};\r\
\n\r\
\n:if (\$enableRandomMacSyncFix=1) do={\r\
\n\t:local cmac \$\"mac-address\"\r\
\n\t:foreach AU in=[/ip hotspot active find user=\"\$username\"] do={\r\
\n\t :local amac [/ip hotspot active get \$AU mac-address];\r\
\n\t :if (\$cmac!=\$amac) do={ /ip hotspot active remove [/ip hotspot ac\
tive find mac-address=\"\$amac\"]; }\r\
\n\t}\r\
\n}" on-logout="### hotspot folder for HEX put flash/hotspot for haplite p\
ut hotspot only\r\
\n:local hotspotFolder \"flash/hotspot\";\r\
\n\r\
\n:local mac \$\"mac-address\";\r\
\n:local macNoCol;\r\
\n:for i from=0 to=([:len \$mac] - 1) do={ \r\
\n :local char [:pick \$mac \$i]\r\
\n :if (\$char = \":\") do={\r\
\n\t:set \$char \"\"\r\
\n }\r\
\n :set macNoCol (\$macNoCol . \$char)\r\
\n}\r\
\n\t\r\
\n:if ([/ip hotspot user get [/ip hotspot user find where name=\"\$user\"]\
\_limit-uptime] <= [/ip hotspot user get [/ip hotspot user find where name\
=\"\$user\"] uptime]) do={\r\
\n /ip hotspot user remove \$user;\r\
\n\t/file remove \"\$hotspotFolder/data/\$macNoCol.txt\";\r\
\n\t/system sche remove [find name=\$user];\r\
\n}" rate-limit=15M/15M
add name=ADMIN_UNLI shared-users=unlimited
/ip ipsec profile
add enc-algorithm=aes-256,3des name=profile1
/ip ipsec peer
add address=34.92.53.252/32 exchange-mode=ike2 name=peer1 profile=profile1
/ip pool
add name=dhcp_pool0 ranges=10.0.0.2-10.0.0.254
add name=dhcp_pool5 ranges=10.0.2.2-10.0.2.254
add name=dhcp_pool7 ranges=10.0.3.2-10.0.4.254
add name=dhcp_pool8 ranges=10.0.3.2-10.0.3.254
add name=dhcp_pool9 ranges=10.0.4.2-10.0.4.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no interface=BRIDGE-LAN name=dhcp1
add address-pool=dhcp_pool5 disabled=no interface=Guest name=dhcp2
add address-pool=dhcp_pool7 disabled=no interface=TEST_VOUCHER_VLAN name=\
dhcp3
add address-pool=dhcp_pool9 disabled=no interface=VOUCHER_HOTSPOT_VLAN21 \
name=dhcp4
/queue simple
add disabled=yes name=queue1 target=10.0.0.0/24
/queue type
add kind=pcq name="20M up" pcq-classifier=dst-address pcq-limit=20000000KiB \
pcq-rate=20M pcq-total-limit=2048KiB
add kind=pcq name="20M down" pcq-classifier=dst-address pcq-limit=20000000KiB \
pcq-rate=20M pcq-total-limit=2048KiB
/queue simple
add disabled=yes name="10M limit" queue="20M up/20M down" target=10.0.0.31/32
add burst-limit=256k/256k burst-threshold=256k/256k burst-time=1s/1s \
disabled=yes max-limit=256k/256k name=Trial queue="20M up/20M down" \
target=10.0.0.31/32
/ip hotspot user profile
add insert-queue-before=Trial name=TRIAL rate-limit=15M/15M
/ip hotspot profile
add dns-name=voucherhotspot.wifi hotspot-address=10.0.3.1 html-directory=\
flash/hotspot html-directory-override=flash/hotspot login-by=\
mac,cookie,http-chap,http-pap,trial name=hsprof1 trial-uptime-limit=5m \
trial-user-profile=TRIAL
/interface bridge port
add bridge=BRIDGE-LAN ingress-filtering=yes interface=ether4 tag-stacking=yes \
trusted=yes
add bridge=BRIDGE-LAN frame-types=admit-only-untagged-and-priority-tagged \
ingress-filtering=yes interface=Guest pvid=10 tag-stacking=yes
add bridge=BRIDGE-LAN frame-types=admit-only-vlan-tagged ingress-filtering=\
yes interface=TEST_VOUCHER_VLAN pvid=20 tag-stacking=yes
add bridge=BRIDGE-LAN frame-types=admit-only-vlan-tagged interface=\
VOUCHER_HOTSPOT_VLAN21 pvid=21
add bridge=BRIDGE-LAN ingress-filtering=yes interface=ether5 tag-stacking=yes \
trusted=yes
/ip neighbor discovery-settings
set discover-interface-list=all lldp-med-net-policy-vlan=10
/ip address
add address=10.0.0.1/24 interface=BRIDGE-LAN network=10.0.0.0
add address=10.0.2.1/24 interface=Guest network=10.0.2.0
add address=10.0.3.1/24 interface=TEST_VOUCHER_VLAN network=10.0.3.0
add address=10.0.3.1/24 comment="hotspot network" interface=\
VOUCHER_HOTSPOT_VLAN21 network=10.0.3.0
add address=10.0.4.1/24 comment="hotspot network" interface=\
VOUCHER_HOTSPOT_VLAN21 network=10.0.4.0
/ip dhcp-client
add add-default-route=no disabled=no interface=1-ISP-PLDT use-peer-dns=no
add add-default-route=no disabled=no interface=2-ISP-GOMO-GLOBE use-peer-dns=\
no
add add-default-route=no disabled=no interface=3-ISP-SMART use-peer-dns=no \
use-peer-ntp=no
add disabled=no
/ip dhcp-server lease
add address=10.0.0.7 client-id=1:2:81:bc:ac:a5:e4 mac-address=\
02:81:BC:AC:A5:E4 server=dhcp1
add address=10.0.0.2 client-id=1:5c:a6:e6:5c:e:4c mac-address=\
5C:A6:E6:5C:0E:4C server=dhcp1
add address=10.0.0.4 client-id=1:b0:95:75:f8:e4:ac mac-address=\
B0:95:75:F8:E4:AC server=dhcp1
add address=10.0.0.6 client-id=1:b4:b0:24:2b:6e:b1 mac-address=\
B4:B0:24:2B:6E:B1 server=dhcp1
add address=10.0.0.5 client-id=1:b0:95:75:29:f:c mac-address=\
B0:95:75:29:0F:0C server=dhcp1
add address=10.0.0.3 client-id=1:b0:95:75:f8:e5:70 mac-address=\
B0:95:75:F8:E5:70 server=dhcp1
add address=10.0.0.99 client-id=1:f4:b1:9c:80:fe:10 mac-address=\
F4:B1:9C:80:FE:10 server=dhcp1
add address=10.0.0.8 mac-address=70:4F:57:1A:AD:D5 server=dhcp1
add address=10.0.0.9 client-id=1:28:ee:52:c4:b4:1a mac-address=\
28:EE:52:C4:B4:1A server=dhcp1
add address=10.0.3.2 mac-address=48:55:19:C8:D9:69 server=dhcp3
add address=10.0.4.2 mac-address=40:F5:20:04:90:60 server=dhcp4
add address=10.0.0.10 client-id=1:28:ee:52:c4:b8:74 mac-address=\
28:EE:52:C4:B8:74 server=dhcp1
add address=10.0.0.52 client-id=\
ff:e3:9b:1a:1:0:1:0:1:2a:bb:7d:65:96:5:e3:9b:1a:1 mac-address=\
96:05:E3:9B:1A:01 server=dhcp1
/ip dhcp-server network
add address=10.0.0.0/24 gateway=10.0.0.1
add address=10.0.2.0/24 gateway=10.0.2.1
add address=10.0.3.0/24 gateway=10.0.3.1
add address=10.0.4.0/24 gateway=10.0.4.1
/ip dns
set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8,9.9.9.9
/ip firewall address-list
add address=10.0.2.2-10.0.2.254 list=GUEST
add address=10.0.3.2-10.0.3.254 list=WIFI-CLIENT
add address=10.0.0.8-10.0.0.254 list=homedns-2
add address=10.0.0.2-10.0.0.254 list=HOME
/ip firewall filter
add action=drop chain=forward disabled=yes out-interface=2-ISP-GOMO-GLOBE \
src-address=10.0.0.51
add action=drop chain=forward disabled=yes out-interface=3-ISP-SMART \
src-address=10.0.0.51
add action=accept chain=input disabled=yes src-address=10.0.3.2
add action=accept chain=input in-interface=l2tp-out1 src-address=192.168.42.1
add action=accept chain=forward disabled=yes log=yes out-interface=l2tp-out1
add action=accept chain=output disabled=yes log=yes src-address=192.168.42.1
add action=accept chain=input disabled=yes src-address=10.0.4.2
add action=drop chain=output comment="Drop isp1" disabled=yes dst-address=\
1.1.1.1 protocol=icmp
add action=drop chain=output comment="Drop isp2" disabled=yes dst-address=\
9.9.9.9 protocol=icmp
add action=drop chain=output comment="Drop isp3" disabled=yes dst-address=\
8.8.8.8 protocol=icmp
add action=passthrough chain=unused-hs-chain comment=\
"place hotspot rules here" disabled=yes
add action=drop chain=input comment="Block GUEST" disabled=yes dst-address=\
10.0.2.1 src-address-list=GUEST
add action=accept chain=forward disabled=yes dst-address=10.0.0.7 \
src-address-list=GUEST
add action=drop chain=input disabled=yes dst-address=10.0.0.0/24 \
src-address-list=GUEST
add action=reject chain=forward disabled=yes dst-address=10.0.0.0/24 \
reject-with=icmp-network-unreachable src-address-list=GUEST
add action=drop chain=input comment="Block WIFI_CLIENTS" disabled=yes \
dst-address=10.0.3.1 src-address-list=WIFI-CLIENT
add action=drop chain=input disabled=yes dst-address=10.0.0.0/24 \
src-address-list=WIFI-CLIENT
add action=drop chain=forward disabled=yes dst-address=10.0.0.0/24 \
src-address-list=WIFI-CLIENT
add action=accept chain=forward disabled=yes dst-address=10.0.0.7 \
src-address-list=WIFI-CLIENT
add action=accept chain=forward disabled=yes dst-address=10.0.3.2 \
src-address-list=WIFI-CLIENT
add action=fasttrack-connection chain=forward out-interface=1-ISP-PLDT \
src-address=10.0.0.51
add action=accept chain=input disabled=yes src-address=0.0.0.0
add action=accept chain=output disabled=yes src-address=0.0.0.0
add action=accept chain=forward disabled=yes in-interface=l2tp-out1
add action=accept chain=forward disabled=yes out-interface=l2tp-out1
/ip firewall mangle
add action=accept chain=prerouting comment=accept dst-address=192.168.1.0/24 \
in-interface=BRIDGE-LAN
add action=accept chain=prerouting dst-address=192.168.2.0/24 in-interface=\
BRIDGE-LAN
add action=accept chain=prerouting dst-address=192.168.3.0/24 in-interface=\
BRIDGE-LAN
add action=mark-connection chain=prerouting comment=connect connection-mark=\
no-mark in-interface=1-ISP-PLDT new-connection-mark=ISP1-conn \
passthrough=yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
in-interface=2-ISP-GOMO-GLOBE new-connection-mark=ISP2-conn passthrough=\
yes
add action=mark-connection chain=prerouting connection-mark=no-mark \
in-interface=3-ISP-SMART new-connection-mark=ISP3-conn passthrough=yes
add action=mark-connection chain=prerouting comment=pcc connection-mark=\
no-mark dst-address-type=!local in-interface=BRIDGE-LAN \
new-connection-mark=ISP1-conn passthrough=yes per-connection-classifier=\
both-addresses-and-ports:3/0
add action=mark-connection chain=prerouting connection-mark=no-mark \
dst-address-type=!local in-interface=BRIDGE-LAN new-connection-mark=\
ISP2-conn passthrough=yes per-connection-classifier=\
both-addresses-and-ports:3/1
add action=mark-connection chain=prerouting connection-mark=no-mark \
dst-address-type=!local in-interface=BRIDGE-LAN new-connection-mark=\
ISP3-conn passthrough=yes per-connection-classifier=\
both-addresses-and-ports:3/2
add action=mark-routing chain=prerouting comment="routing mark" \
connection-mark=ISP1-conn in-interface=BRIDGE-LAN new-routing-mark=\
"to ISP1" passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP2-conn \
in-interface=BRIDGE-LAN new-routing-mark="to ISP2" passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP3-conn \
in-interface=BRIDGE-LAN new-routing-mark="to ISP3" passthrough=yes
add action=mark-routing chain=output comment=output connection-mark=ISP1-conn \
new-routing-mark="to ISP1" passthrough=yes
add action=mark-routing chain=output connection-mark=ISP2-conn \
new-routing-mark="to ISP2" passthrough=yes
add action=mark-routing chain=output connection-mark=ISP3-conn \
new-routing-mark="to ISP3" passthrough=yes
/ip firewall nat
add action=masquerade chain=srcnat out-interface=1-ISP-PLDT
# no interface
add action=masquerade chain=srcnat out-interface=*1C
add action=masquerade chain=srcnat out-interface=2-ISP-GOMO-GLOBE
add action=masquerade chain=srcnat dst-address-list="" out-interface=\
3-ISP-SMART
add action=passthrough chain=unused-hs-chain comment=\
"place hotspot rules here" disabled=yes
add action=masquerade chain=srcnat disabled=yes src-address=10.0.2.0/24
add action=masquerade chain=srcnat comment="masquerade hotspot network" \
disabled=yes src-address=10.0.3.0/24
add action=masquerade chain=srcnat comment="masquerade hotspot network" \
disabled=yes src-address=10.0.3.0/24
add action=masquerade chain=srcnat comment="masquerade hotspot network" \
disabled=yes src-address=10.0.3.0/24
add action=masquerade chain=srcnat comment="masquerade hotspot network" \
disabled=yes src-address=10.0.3.0/24
add action=masquerade chain=srcnat comment="masquerade hotspot network" \
disabled=yes src-address=10.0.4.0/24
add action=dst-nat chain=dstnat disabled=yes dst-port=8081 log=yes protocol=\
tcp to-addresses=10.0.0.51 to-ports=8888
add action=netmap chain=dstnat dst-port=8081 log=yes protocol=tcp \
to-addresses=10.0.0.51 to-ports=8888
/ip hotspot ip-binding
add address=10.0.3.2 mac-address=48:55:19:C8:D9:69 to-address=10.0.3.2 type=\
bypassed
add address=10.0.3.3 mac-address=40:F5:20:04:90:60 to-address=10.0.3.3 type=\
bypassed
/ip hotspot user
add name=admin profile=ADMIN_UNLI
add email=new@gmail.com limit-uptime=10m name=P1657
add email=new@gmail.com limit-uptime=20m name=P9173
add email=new@gmail.com limit-uptime=1h name=P3446
/ip hotspot walled-garden
add comment="place hotspot rules here" disabled=yes
/ip hotspot walled-garden ip
add action=accept disabled=no dst-address=149.154.160.0/20 !dst-address-list \
!dst-port !protocol !src-address !src-address-list
add action=accept disabled=no dst-address=149.154.164.0/22 !dst-address-list \
!dst-port protocol=udp !src-address !src-address-list
add action=accept disabled=no dst-address=91.108.4.0/22 !dst-address-list \
!dst-port !protocol !src-address !src-address-list
add action=accept disabled=no dst-address=91.108.56.0/22 !dst-address-list \
!dst-port !protocol !src-address !src-address-list
add action=accept disabled=no dst-address=91.108.8.0/22 !dst-address-list \
!dst-port !protocol !src-address !src-address-list
add action=accept disabled=no dst-address=95.161.64.0/20 !dst-address-list \
!dst-port !protocol !src-address !src-address-list
add action=accept comment=vendo disabled=no dst-address=10.0.4.2 \
!dst-address-list !dst-port !protocol !src-address !src-address-list
add action=accept comment=vendo disabled=no dst-address=10.0.3.2 \
!dst-address-list !dst-port !protocol !src-address !src-address-list
/ip ipsec identity
add peer=peer1
/ip route
add check-gateway=ping distance=1 gateway=1.1.1.1 scope=10
add check-gateway=ping distance=2 gateway=9.9.9.9 scope=10
add check-gateway=ping distance=3 gateway=8.8.8.8 scope=10
add distance=1 dst-address=1.1.1.1/32 gateway=192.168.1.1 scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=192.168.3.1 scope=10
add distance=1 dst-address=9.9.9.9/32 gateway=192.168.2.1 scope=10
/ip upnp
set enabled=yes
/system clock
set time-zone-name=Asia/Manila
/system logging
add action=disk prefix=-> topics=hotspot,info,debug
/system package update
set channel=testing
/system scheduler
add comment="WinboxMobile push stats v4, DO NOT CHANGE" interval=5m name=\
WinboxMobile-push-stats on-event=WinboxMobile-push-stats policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=apr/03/2022 start-time=00:10:49
add interval=129w2d20h name=P1730 on-event="/ip hotspot user remove [find name\
=P1730]; /ip hotspot active remove [find user=P1730]; /ip hotspot cookie r\
emove [find user=P1730]; /system sche remove [find name=P1730]; /file remo\
ve \"flash/hotspot/data/4EF90D4449F8.txt\";" policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=jul/01/2022 start-time=12:11:11
add interval=1d name="Reset Daily Income" on-event=\
"/system script set source=\"0\" todayincome " policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=sep/28/2021 start-time=00:00:00
add interval=4w2d name="Reset Monthly Income" on-event=\
"/system script set source=\"0\" monthlyincome " policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
start-date=sep/28/2021 start-time=00:00:00
/system script
add comment="WinboxMobile push stats v4, DO NOT CHANGE" \
dont-require-permissions=no name=WinboxMobile-push-stats owner=admin \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
source="# WinboxMobile push stats v4\r\
\n# RouterOS 6.39+/7.0+ required. \r\
\n\r\
\n:global wmUrlEncode do={\r\
\n :local Chars {\" \"=\"%20\";\"!\"=\"%21\";\"\\\"\"=\"%22\";\"#\"=\"%23\
\";\"\$\"=\"%24\";\"%\"=\"%25\";\"&\"=\"%26\";\"'\"=\"%27\";\"(\"=\"%28\";\
\")\"=\"%29\";\"*\"=\"%2A\";\"+\"=\"%2B\";\",\"=\"%2C\";\"-\"=\"%2D\";\".\
\"=\"%2E\";\"/\"=\"%2F\";\":\"=\"%3A\";\";\"=\"%3B\";\"<\"=\"%3C\";\"=\"=\
\"%3D\";\">\"=\"%3E\";\"\?\"=\"%3F\";\"@\"=\"%40\";\"[\"=\"%5B\";\"\\\\\"=\
\"%5C\";\"]\"=\"%5D\";\"^\"=\"%5E\";\"`\"=\"%60\";\"{\"=\"%7B\";\"|\"=\"%7\
C\";\"}\"=\"%7D\";\"~\"=\"%7E\"}\r\
\n :local URLEncodeStr\r\
\n :local Char\r\
\n :local EncChar\r\
\n :for i from=0 to=([:len \$1]-1) do={\r\
\n :set Char [:pick \$1 \$i]\r\
\n :set EncChar (\$Chars->\$Char)\r\
\n :if (any \$EncChar) do={\r\
\n :set URLEncodeStr (\$URLEncodeStr . \$EncChar)\r\
\n } else={\r\
\n :set URLEncodeStr (\$URLEncodeStr . \$Char)\r\
\n }\r\
\n }\r\
\n :return \$URLEncodeStr\r\
\n}\r\
\n\r\
\n:global wmInterfaceMonit do={\r\
\n :global wmUrlEncode;\r\
\n\r\
\n :local data; :local item; :local encodedName; :local linkDown; :local \
linkDownTime;\r\
\n :foreach i in=[/interface find type=\$1 disabled=no] do={\r\
\n :set linkDown [/interface get \$i link-downs];\r\
\n :set linkDownTime [\$wmUrlEncode [/interface get \$i last-link-down-\
time]];\r\
\n\r\
\n /interface monitor-traffic \$i once do={\r\
\n :set encodedName [\$wmUrlEncode \$name];\r\
\n :set item \"traffic[]=\$1||\$i||\$encodedName||\$\"tx-bits-per-sec\
ond\"||\$\"rx-bits-per-second\"||\$\"tx-packets-per-second\"||\$\"rx-packe\
ts-per-second\"||\$linkDown||\$linkDownTime\"\r\
\n :set data ( \$data . \"&\" . \$item);\r\
\n }\r\
\n }\r\
\n :return \$data\r\
\n}\r\
\n\r\
\n:local packageRouting true\r\
\n:local packagePpp true\r\
\n:local packageSecurity true\r\
\n:local packageDhcp true\r\
\n:local packageWireless true\r\
\n:local packageHotspot true\r\
\n:local majarVersion [:pick [/system resource get version] 0 1]\r\
\n:if (\$majarVersion = \"6\") do={\r\
\n :if ([/system package find name=routing disabled=no] = \"\") do={\r\
\n :set packageRouting false\r\
\n }\r\
\n :if ([/system package find name=ppp disabled=no] = \"\") do={\r\
\n :set packagePpp false\r\
\n }\r\
\n :if ([/system package find name=security disabled=no] = \"\") do={\r\
\n :set packageSecurity false\r\
\n }\r\
\n :if ([/system package find name=dhcp disabled=no] = \"\") do={\r\
\n :set packageDhcp false\r\
\n }\r\
\n :if ([/system package find name=wireless disabled=no] = \"\") do={\r\
\n :set packageWireless false\r\
\n }\r\
\n :if ([/system package find name=hotspot disabled=no] = \"\") do={\r\
\n :set packageHotspot false\r\
\n }\r\
\n}\r\
\n\r\
\n:local dataParams;\r\
\n:set dataParams \"push_stats_version=4&did=F72DBDC3-C5F5-4E8C-A2F6-D303C\
893495E&pid=\";\r\
\n\r\
\n:put \"Collecting Board data...\"\r\
\n:do {\r\
\n :local serialNumber [/system routerboard get serial-number];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"serial_number=\$serialNum\
ber\");\r\
\n} on-error={ :put \"Collecting Board data 1 error\"};\r\
\n:do {\r\
\n :local systemId [/system license get system-id];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"system_id=\$systemId\");\
\r\
\n} on-error={ :put \"Collecting Board data 2 error\"};\r\
\n:do {\r\
\n :local softwareId [/system license get software-id];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"software_id=\$softwareId\
\");\r\
\n} on-error={ :put \"Collecting Board data 3 error\"};\r\
\n\r\
\n:put \"Collecting Performance data...\"\r\
\n:do {\r\
\n :local cpuLoad [/system resource get cpu-load];\r\
\n :local memFree [/system resource get free-memory];\r\
\n :local memTotal [/system resource get total-memory];\r\
\n :local hddFree [/system resource get free-hdd-space];\r\
\n :local hddTotal [/system resource get total-hdd-space];\r\
\n :local userActive [/user active print count-only];\r\
\n :local perfData \"cpu_load=\$cpuLoad&mem_free=\$memFree&mem_total=\$\
memTotal&hdd_free=\$hddFree&hdd_total=\$hddTotal&user_active_count=\$userA\
ctive\"\r\
\n :set dataParams ( \$dataParams . \"&\" . \$perfData);\r\
\n} on-error={ :put \"Collecting Performance error\"};\r\
\n\r\
\n:put \"Collecting Health data...\"\r\
\n:do {\r\
\n :local voltage [/system health get voltage];\r\
\n :local current [/system health get current];\r\
\n :local powerCons [/system health get power-consumption];\r\
\n :local temp [/system health get temperature];\r\
\n :local cpuTemp [/system health get cpu-temperature];\r\
\n :local fanSpeed [/system health get fan1-speed];\r\
\n :local healthData \"voltage=\$voltage¤t=\$current&power_consumpt\
ion=\$powerCons&temperature=\$temp&cpu_temperature=\$cpuTemp&fan_speed=\$f\
anSpeed\"\r\
\n :set dataParams ( \$dataParams . \"&\" . \$healthData);\r\
\n} on-error={ :put \"Collecting Health error\"};\r\
\n\r\
\n:put \"Collecting Bridge data...\"\r\
\n:local bridgeData; :local bridgeHostCount; :local bridgeDataItem;\r\
\n:do {\r\
\n :set bridgeHostCount [/interface bridge host print count-only];\r\
\n :set bridgeData \"bridge_host[][bridge]=ALL&bridge_host[][count]\
=\$bridgeHostCount\"\r\
\n\r\
\n :set dataParams (\$dataParams . \"&\" . \$bridgeData);\r\
\n} on-error={ :put \"Collecting Bridge error\"};\r\
\n\r\
\n:put \"Collecting IP data...\"\r\
\n:local routerData; :local ipRouteCount; :local ipARPCount; :local ipPool\
UsedCount; :local ipFwCount;\r\
\n:do {\r\
\n :set ipRouteCount [/ip route print count-only];\r\
\n :set ipARPCount [/ip arp print count-only];\r\
\n :set ipPoolUsedCount [/ip pool used print count-only];\r\
\n :set ipFwCount [/ip firewall connection print count-only];\r\
\n :set routerData \"ip_route_count=\$ipRouteCount&ip_arp_count=\$i\
pARPCount&ip_pool_used_count=\$ipPoolUsedCount&firewall_connection_count=\
\$ipFwCount\"\r\
\n :set dataParams (\$dataParams . \"&\" . \$routerData);\r\
\n} on-error={ :put \"Collecting IP error\"};\r\
\n\r\
\n:if (\$packageRouting = false) do={\r\
\n :put \"routing package is not installed.\"\r\
\n} else={\r\
\n :put \"Collecting Routing data...\"\r\
\n :local routingData; :local bgpPeerCount; :local ospfNeighborCount;\r\
\n :do {\r\
\n :set bgpPeerCount [/routing bgp peer print count-only];\r\
\n :set ospfNeighborCount [/routing ospf neighbor print count-only];\r\
\n :set routingData \"bgp_peer_count=\$bgpPeerCount&ospf_neighbo\
r_count=\$ospfNeighborCount\"\r\
\n :set dataParams (\$dataParams . \"&\" . \$routingData);\r\
\n } on-error={ :put \"Collecting Routing error\"};\r\
\n}\r\
\n\r\
\n:put \"Collecting VPN data...\";\r\
\n:local vpnData; :local vpnPppCount; :local vpnIpsecPeerCount; :local vpn\
IpsecPolicyCount;\r\
\n:do {\r\
\n :if (\$packagePpp = false) do={\r\
\n :set vpnPppCount 0;\r\
\n } else={\r\
\n :set vpnPppCount [/ppp active print count-only];\r\
\n }\r\
\n\r\
\n :if (\$packageSecurity = false) do={\r\
\n :set vpnIpsecPeerCount 0;\r\
\n :set vpnIpsecPolicyCount 0;\r\
\n } else={\r\
\n :set vpnIpsecPeerCount [/ip ipsec active-peers print count-only\
];\r\
\n :set vpnIpsecPolicyCount [/ip ipsec policy print count-only];\r\
\n }\r\
\n\r\
\n :set vpnData \"ppp_active_count=\$vpnPppCount&ipsec_rem\
ote_peer_count=\$vpnIpsecPeerCount&ipsec_policy_count=\$vpnIpsecPolicyCoun\
t\";\r\
\n :set dataParams ( \$dataParams . \"&\" . \$vpnData);\r\
\n} on-error={ :put \"Collecting VPN error\"};\r\
\n\r\
\n:if (\$packageDhcp = false) do={\r\
\n :put \"dhcp package is not installed.\"\r\
\n} else={\r\
\n :put \"Collecting DHCP data...\";\r\
\n :local dhcpData;\r\
\n :do {\r\
\n :local leaseCount [/ip dhcp-server lease print count-only];\r\
\n :set dhcpData \"dhcp_server_lease[][server]=ALL&dhcp_server_le\
ase[][count]=\$leaseCount\";\r\
\n\r\
\n :set dataParams ( \$dataParams . \"&\" . \$dhcpData);\r\
\n } on-error={ :put \"Collecting DHCP error\"};\r\
\n}\r\
\n\r\
\n:if (\$packageWireless = false) do={\r\
\n :put \"wireless package is not installed.\"\r\
\n} else={\r\
\n :put \"Collecting Wireless data...\";\r\
\n :local wirelessData; :local wirelessDataItem;\r\
\n :do {\r\
\n :local wirelessCount [/interface wireless registration-table prin\
t count-only];\r\
\n :set wirelessData \"wireless_registration[][interface]=ALL&wir\
eless_registration[][count]=\$wirelessCount\";\r\
\n\r\
\n :set dataParams ( \$dataParams . \"&\" . \$wirelessData);\r\
\n } on-error={ :put \"Collecting Wireless error\"};\r\
\n\r\
\n :put \"Collecting CAPsMan data...\";\r\
\n :local capsmanData; :local capsmanDataItem;\r\
\n :do {\r\
\n :local capsmanCAPCount [/caps-man remote-cap print count-only];\
\r\
\n :local capsmanRegisCount [/caps-man registration-table print coun\
t-only];\r\
\n :local capsmanRadioCount [/caps-man radio print count-only];\r\
\n :set capsmanData \"capsman_remote_cap_count=\$capsmanCAPC\
ount&capsman_registration[][interface]=ALL&capsman_registration[][count]=\
\$capsmanRegisCount&capsman_radio[][interface]=ALL&capsman_radio[][count]=\
\$capsmanRadioCount\";\r\
\n\r\
\n :set dataParams ( \$dataParams . \"&\" . \$capsmanData);\r\
\n } on-error={ :put \"Collecting CAPsMan error\"};\r\
\n}\r\
\n\r\
\n:if (\$packageHotspot = false) do={\r\
\n :put \"hotspot package is not installed.\"\r\
\n} else={\r\
\n :put \"Collecting Hotspot data...\";\r\
\n :local hotspotData; :local hotspotDataItem;\r\
\n :do {\r\
\n :local cookieCount [/ip hotspot cookie print count-only]\r\
\n :local activeCount [/ip hotspot active print count-only]\r\
\n :local hostCount [/ip hotspot host print count-only]\r\
\n :set hotspotData \"hotspot_cookie_count=\$cookieCount&hotsp\
ot_active[][server]=ALL&hotspot_active[][count]=\$activeCount&hotspot_host\
[][server]=ALL&hotspot_host[][count]=\$hostCount\";\r\
\n\r\
\n :set dataParams ( \$dataParams . \"&\" . \$hotspotData);\r\
\n } on-error={ :put \"Collecting Hotspot error\"};\r\
\n}\r\
\n\r\
\n:put \"Collecting Interface data...\";\r\
\n:do {\r\
\n /interface monitor-traffic aggregate once do={\r\
\n :local aggregateData \"traffic[]=aggregate||0||aggregate||\$\"tx-bit\
s-per-second\"||\$\"rx-bits-per-second\"||\$\"tx-packets-per-second\"||\$\
\"rx-packets-per-second\"\"\r\
\n :set dataParams ( \$dataParams . \"&\" . \$aggregateData);\r\
\n }\r\
\n\r\
\n :set dataParams ( \$dataParams . \"&\" . [\$wmInterfaceMonit \"ether\"\
]);\r\
\n :set dataParams ( \$dataParams . \"&\" . [\$wmInterfaceMonit \"wlan\"]\
);\r\
\n :set dataParams ( \$dataParams . \"&\" . [\$wmInterfaceMonit \"cap\"])\
;\r\
\n} on-error={ :put \"Collecting Interface error\"};\r\
\n\r\
\n:do {\r\
\n :local identity [\$wmUrlEncode [/system identity get name]];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"identity=\$identity\");\r\
\n\r\
\n :local model [\$wmUrlEncode [/system routerboard get model]];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"model=\$model\");\r\
\n\r\
\n :local version [\$wmUrlEncode [/system resource get version]];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"version=\$version\");\r\
\n\r\
\n :local uptime [\$wmUrlEncode [/system resource get uptime]];\r\
\n :set dataParams ( \$dataParams . \"&\" . \"uptime=\$uptime\");\r\
\n} on-error={ :put \"Collecting Board string data error\"};\r\
\n\r\
\n:put \$dataParams;\r\
\n\r\
\n:local finalURL \"https://septudio.com/mik_push_stats\"\r\
\n/tool fetch url=\"\$finalURL\" http-method=post http-data=\"\$dataParams\
\" mode=https keep-result=no\r\
\n"
add dont-require-permissions=no name=todayincome owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=0
add dont-require-permissions=no name=monthlyincome owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=0
/tool netwatch
add down-script="/ip route disable [fin dst-adress=0.0.0.0/0 gateway=1.1.1.1]\
\r\
\n/ip firewall connection remove [find]" host=1.1.1.1 interval=6s \
timeout=400ms up-script=\
"/ip route enable [fin dst-adress=0.0.0.0/0 gateway=1.1.1.1]\r\
\n"
add down-script="/ip route disable [fin dst-adress=0.0.0.0/0 gateway=9.9.9.9]\
\r\
\n/ip firewall connection remove [find]" host=9.9.9.9 interval=6s \
timeout=400ms up-script=\
"/ip route enable [fin dst-adress=0.0.0.0/0 gateway=9.9.9.9]\r\
\n"
add down-script="/ip route disable [fin dst-adress=0.0.0.0/0 gateway=8.8.8.8]\
\r\
\n/ip firewall connection remove [find]" host=8.8.8.8 interval=6s \
timeout=400ms up-script=\
"/ip route enable [fin dst-adress=0.0.0.0/0 gateway=8.8.8.8]\r\
\n"
add comment="NETWATCH TELEGRAM" down-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ISP1-PLDT is DOWN\"\r\
\n\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;" host=1.1.1.1 timeout=400ms \
up-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ISP1-PLDT is UP\"\r\
\n\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;"
add comment="NETWATCH TELEGRAM" down-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ISP2-GOMO-Globe is DOWN\"\r\
\n\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;" host=9.9.9.9 timeout=400ms \
up-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ISP2-GOMO-Globe is UP\"\r\
\n\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;"
add down-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ODIN is DOWN\"\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;" host=10.0.0.51 up-script=":loc\
al CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ODIN is UP\"\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;"
add comment="NETWATCH TELEGRAM" down-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ISP3-SMART is DOWN\"\r\
\n\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;" host=8.8.8.8 timeout=400ms \
up-script=":local CHID \"1428711220\"\r\
\n:local BotID \"5406175021:AAH14AvW1ZN-ZwxYcjIiSLBMP6m2e6ykAyY\"\r\
\n:local Message \"ISP3-SMART is UP\"\r\
\n\r\
\n/tool fetch url=\"https://api.telegram.org/bot\$BotID/sendMessage\?chat_\
id=\$CHID&text=\$Message\" keep-result=no;"