Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #your ip at : myhostname.mydomain es: my.mydns.com
- #domain
- $mydomain = "yourdomain.com"
- #Production on godaddy https://developer.godaddy.com/keys
- $myhostname = "my"
- #pubkey:privatekey
- $gdapikey = "9Q7p8YLDzVg_MCggBvJXYBCPRsKCP3KzSL:5KDtXPfgRxQH2uD9pa1HBW"
- #log
- $logfile = "log.txt"
- Add-Content $($logfile) 'starting deamon..'
- $myip = Invoke-RestMethod -Uri "https://api.ipify.org"
- $dnsdata = Invoke-RestMethod -Uri "https://api.godaddy.com/v1/domains/$($mydomain)/records/A/$($myhostname)" -Headers @{ Authorization = "sso-key $($gdapikey)" }
- $gdip = $dnsdata.data
- #clear log if it's too long
- $nlines = 0;
- # Read file by 1000 lines at a time
- gc $logfile -read 1000 | % { $nlines += $_.Length };
- [string]::Format("{0} has {1} lines", $logfile, $nlines)
- if ($nlines -gt 2000){
- Clear-Content $($logfile)
- Add-Content $($logfile) 'Log cleared.'
- }
- #log and output
- $log1 = "$(Get-Date -Format 'u') - Current External IP is $($myip), GoDaddy DNS IP is $($gdip)"
- Add-Content $($logfile) $log1
- Write-Output $log1
- if ( $gdip -NotMatch $myip ) {
- Invoke-RestMethod -Method PUT -Uri "https://api.godaddy.com/v1/domains/$($mydomain)/records/A/$($myhostname)" -Headers @{ Authorization = "sso-key $($gdapikey)" } -ContentType "application/json" -Body "[{`"data`": `"$($myip)`"}]";
- Add-Content $($logfile) "IP has changed!! Updating on GoDaddy from $($gdip) to new: $($myip) "
- Write-Output "IP has changed!! Updating on GoDaddy"
- }else
- {
- Add-Content $($logfile) 'No updates to do!'
- Write-Output "No updates to do!"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement