diff --git a/Check-ChangedIP.ps1 b/Check-ChangedIP.ps1 new file mode 100644 index 0000000..bb9b167 --- /dev/null +++ b/Check-ChangedIP.ps1 @@ -0,0 +1,43 @@ +# Check Public IP-script +# +#function Check-ChangedIP { + param ( + $Domain,$Alert=$false + ) + +$apikey = "xx" + +# Script starts +$CurrentIP = Resolve-DnsName $Domain | Select-Object -ExpandProperty Ipaddress +$credentials = New-Object System.Management.Automation.PSCredential ($apiKey, (ConvertTo-SecureString $apiKey -AsPlainText -Force)) + + +$ifconfig = Invoke-WebRequest ifconfig.co/json | ConvertFrom-Json + +if ($ifconfig.IP -ne $CurrentIP) { + 'new ip!' + if ($Alert -eq $true) { + $pushDevices = Invoke-RestMethod -Uri 'https://api.pushbullet.com/api/devices' -Method Get -Credential $credentials + foreach ($device in $pushDevices.devices) { + + # build the notification + $notification = @{ + device_iden = $device.iden + type = 'note' + title = 'IP Address Change detected' + body = "New IP address $($ifconfig.ip) is detected" + } + Invoke-RestMethod -Uri 'https://api.pushbullet.com/api/pushes' -Body $notification -Method Post -Credential $credentials + } + } + else { + Write-Host -ForegroundColor Red "New IP detected!" + Write-Host -ForegroundColor Red "Old: $CurrentIP" + Write-Host -ForegroundColor Red "New: $($ifconfig.ip)" + } +} +else { + Write-Host -ForegroundColor Green "No change!" +} + +#} \ No newline at end of file