Skrip ini memperbarui secara otomatis informasi Domain Anda yang diberikan oleh Digital Ocean jika IP publik berubah
Parameter:
subDomain: Nama catatan A di zona DNS Anda untuk memperbarui (harus sudah ada) domainName: Nama Domain di-host oleh Digital Ocean token: Token Akses untuk DigitalOcean API V2 wanInterface: Nama interface Anda dengan IP Publik (pppoe, dhcp, atau static. Contoh: pppoe-wan)
Script “ddns-digitalocean”
Share to Unlock Content
Silahkan share untuk membuka link download dan membuka scriptnya
Apabila tutorial ini bermanfaat support saya dengan cara share artikel ini..
Terimakasih
##
## Dynamic DNS updater script for DigitalOcean DNS Server
## https://github.com/menczeln/Mikrotik/tree/master/ddns-digitalocean
##
## JParseFunctions script is used to parse JSON data.
## Please install it from:
## https://github.com/Winand/mikrotik-json-parser
##
## Copyright (C) 2019 Norbert Menczel
## Released under the MIT license
## https://github.com/menczeln/Mikrotik/blob/master/LICENSE
##
############################################
#### VARIABLES, PLEASE SET AS YOUR NEED ####
############################################
## The SUBDOMAIN to update. Must be an A record in your DO hosted domain zone.
:local subDomainName "home"
## The domain hosted by your DO account
:local domainName "example.com"
## Authentication token for you DO account
:local token "1234567890abcdefghijklmnopqrstuvwzxy1234567890ABCDEFGHIJKLMNOPQR"
## WAN interface (pppoe, dhcp or any other with public IP)
:local wanInterface "pppoe-wan"
###################################################
### THE MAIN SCRIPT. DO NOT MODIFY THIS PART!!! ###
###################################################
## Function to get your Public IP
:local getWanIp do={
:local wanip [/ip address get [/ip address find interface=$wanif] address]
:if ([:type $wanip]=nil) do={
:log error ("[DigitalOcean DNS] Error get IP from WAN Interface: ".$wanif)
:error ("[DigitalOcean DNS] Error get IP from WAN Interface: ".$wanif)
}
:for i from=([:len $wanip]-1) to 0 do={
:if ([:pick $wanip $i]="/") do={
:set wanip [:pick $wanip 0 $i]
}
}
return $wanip
}
## Function to get ID of your DNS entry
:local getRecordId do={
/system script run "JParseFunctions"
:global JSONLoads
:global JSONUnload
:local rid
:local result [/tool fetch http-method=get http-header-field="Content-Type: application/json,Authorization: Bearer $t" "https://api.digitalocean.com/v2/domains/$dn/records" output=user as-value]
:if ($result->"status"="finished") do={
/system script run "JParseFunctions"
foreach record in=([$JSONLoads ($result->"data")]->"domain_records") do={
if ($record->"name" = $rn) do={
$JSONUnload
return ($record->"id")
}
}
$JSONUnload
}
return $rid
}
## Function to update your DNS entry
:local updateDns do={
:local result [/tool fetch http-method=put http-header-field="Content-Type: application/json,Authorization: Bearer $t" http-data="{\"data\":\"$ip\"}" "https://api.digitalocean.com/v2/domains/$d/records/$rid" output=user as-value]
:if ($result->"status"="finished") do={
return true
}
return false
}
## Main
:local currentIp [:resolve ($subDomainName.".".$domainName)]
:local newIp [$getWanIp wanif=$wanInterface]
if ($currentIp=$newIp) do={
return ""
}
:local recordId [$getRecordId t=($token) dn=($domainName) rn=($subDomainName)]
:if ([:len $recordId]=0) do={
:log error ("[Digita Ocean DNS] Error get RecordID for ".($subDomainName.".".$domainName))
:error ("[DigitalOcean DNS] Error get RecordID for ".($subDomainName.".".$domainName))
}
:if (![$updateDns t=($token) d=($domainName) rid=($recordId) ip=($newIp)]) do={
:log error ("[DigitalOcean DNS] Error updating for ".($subDomainName.".".$domainName)." -> $newIp")
:error ("[DigitalOcean DNS] Error updating for ".($subDomainName.".".$domainName)." -> $newIp")
}
:log info ("[DigitalOcean DNS] Update success for ".($subDomainName.".".$domainName)." -> $newIp")
Persiapan
Pada pembuatan pembayaran otomatis dengan Payment Gateway Midtrans ada beberapa tahapan dan kebutuhan yang perlu disiapkan diantaranya yaitu:
Akun Payment Gateway...
Kirim
Maaf, tidak semua pesan bisa saya balas
Mohon maaf, tidak semua pesan bisa saya balas, silahkan ceritakan dengan singkat apa yang Kamu butuhkan. Terimakasih