Mikrotik Script For auto reconnect PPPOE to get Public IP

I’m using mikrotik and my isp keep changing my ip from time to time, sometime i get public ip or private ip, so to keep to get public ip i need to reconnect until i get public ip, here’s some script that i use :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
:local WANINTERFACE [CHANGE THIS WITH WAN PPPOE INTERFACE]

:local WANIP [/ip address get [find where interface=$WANINTERFACE ] value-name=address];

:set WANIP [:pick $WANIP 0 ([:len $WANIP]-3) ];

:if ($WANIP ~"^[0-9 ]*10")  do={
:local c 0;
:log warning "Private ip address found !!!";
:log warning "Reset $WANINTERFACE  !!!";

:do {
:set $c ($c+1);
/interface pppoe-client enable $WANINTERFACE;
:delay 15s
:set WANIP [/ip address get [find where interface=$WANINTERFACE ] value-name=address];
:set WANIP [:pick $WANIP 0 ([:len $WANIP]-3) ];
:log warning "Attempt $c IP : $WANIP !!!";
:delay 5s
} while=($WANIP ~"^[0-9 ]*10")

:log warning "Public IP - Found, OK ! end script";

} else={
:log warning "Public IP - $WANIP - Found, OK ! No action required";
}

don’t forget to add it to schedule and repeat it.

DDNS Cloudflare API


Because i move my dns service from Namecheap to Cloudflare, i need to update my dynamic isp ip one of my subdomain in cloudflare with ddns cloudflare api and here some script that i use :

THE SCRIPT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh
[ ! -f /var/tmp/current_ip.txt ] && touch /var/tmp/currentip.txt

zone_name="root_domain"
EMAIL="cloudflare_email"
AUTHKEY="cloudflare_api"

DNS1="first_domain"
DNS2="second_domain"

NEWIP=$(curl -s http://ipv4.icanhazip.com)
DOMAINIP1=$(dig "$DNS1" +short | awk '{ print ; exit }')
DOMAINIP2=$(dig "$DNS2" +short | awk '{ print ; exit }')
zone_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone_name" -H "X-Auth-Email: $EMAIL" -H "X-Auth-Key: $AUTHKEY" -H "Content-Type: application/json" | grep -Po '(?<="id":")[^"]*' | head -1 )

dns1_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$DNS1" -H "X-Auth-Email: $EMAIL" -H "X-Auth-Key: $AUTHKEY" -H "Content-Type: application/json" | | grep -Po '(?<="id":")[^"]*' | head -1)
dns2_identifier=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$DNS2" -H "X-Auth-Email: $EMAIL" -H "X-Auth-Key: $AUTHKEY" -H "Content-Type: application/json" | | grep -Po '(?<="id":")[^"]*' | head -1) if [ "$NEWIP" = "$DOMAINIP1" ] then echo "IP address unchanged" else curl -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$dns1_identifier" \ -H "X-Auth-Email: $EMAIL" \ -H "X-Auth-Key: $AUTHKEY" \ -H "Content-Type: application/json" \ --data "{"id":"$zone_identifier","type":"A","name":"$DNS1","content":"$NEWIP","proxied":true}" echo "$DNS1 IP address changed to $NEWIP from $DOMAINIP1" > /var/tmp/currentip.txt
fi

if [ "$NEWIP" = "$DOMAINIP2" ]
then
echo "IP address unchanged"
else
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$dns2_identifier" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $AUTHKEY" \
-H "Content-Type: application/json" \
--data "{"id":"$zone_identifier","type":"A","name":"$DNS2","content":"$NEWIP","proxied":true}"
echo "$DNS2 IP address changed to $NEWIP from $DOMAINIP2" >> /var/tmp/currentip.txt
fi

DON’T FORGET

don’t forget to set chmod +x to the file
add it to crontab

ASP.NET Core RC2 To RTM

So today i try to migrate from asp.net core RC2 to RTM, here’s the step i do when migrating

1. Uninstall all Microsoft.NET Core RC2 Runtime, SDK, and Tooling Preview 1
2. Install the new Microsoft.NET Core RTM, SDK, and Tooling Preview 2
3. Change all version in project.json from 1.0.0-rc2-final to 1.0.0
4. Change all version in project.json from 1.0.0-preview1-final to 1.0.0-preview2-final
5. Find global.json in your solution root, and change it from 1.0.0-preview1-002702 to 1.0.0-preview2-003121
6. Done rebuilt the solution!
7. Good Luck!!

Identity Jump on MS SQL Server 2012 and up

I got problem when MS SQL Service got sudden shutdown or restart the identity is jump by 1000.
To solve this problem use “-T272”

1. Open “SQL Server Configuration Manager”
2. Click “SQL Server Services” on the left pane
3. Right-click on your SQL Server instance name on the right pane
4. Click “Properties”
5. Click “Startup Parameters”
6. On the “specify a startup parameter” textbox type “-T272”
7. Click “Add”
8. Confirm the changes

I hope this can solve the problem.