Compare commits

..

2 Commits

Author SHA1 Message Date
e4f5e7aa40 first draft 2022-04-25 13:08:35 +02:00
7f65239431 First draft 2022-04-25 13:01:15 +02:00

View File

@@ -1,43 +1,87 @@
# Check Public IP-script # Check Public IP-script
# #
#function Check-ChangedIP { #function Check-ChangedIP {
param ( param (
$Domain,$Alert=$false $Domain,$Alert=$false
) )
$apikey = "xx" $apikey = "xx"
# Script starts # Script starts
$CurrentIP = Resolve-DnsName $Domain | Select-Object -ExpandProperty Ipaddress $CurrentIP = Resolve-DnsName $Domain | Select-Object -ExpandProperty Ipaddress
$credentials = New-Object System.Management.Automation.PSCredential ($apiKey, (ConvertTo-SecureString $apiKey -AsPlainText -Force)) $credentials = New-Object System.Management.Automation.PSCredential ($apiKey, (ConvertTo-SecureString $apiKey -AsPlainText -Force))
$ifconfig = Invoke-WebRequest ifconfig.co/json | ConvertFrom-Json $ifconfig = Invoke-WebRequest ifconfig.co/json | ConvertFrom-Json
if ($ifconfig.IP -ne $CurrentIP) { if ($ifconfig.IP -ne $CurrentIP) {
'new ip!' 'new ip!'
if ($Alert -eq $true) { if ($Alert -eq $true) {
$pushDevices = Invoke-RestMethod -Uri 'https://api.pushbullet.com/api/devices' -Method Get -Credential $credentials $pushDevices = Invoke-RestMethod -Uri 'https://api.pushbullet.com/api/devices' -Method Get -Credential $credentials
foreach ($device in $pushDevices.devices) { foreach ($device in $pushDevices.devices) {
# build the notification # build the notification
$notification = @{ $notification = @{
device_iden = $device.iden device_iden = $device.iden
type = 'note' type = 'note'
title = 'IP Address Change detected' title = 'IP Address Change detected'
body = "New IP address $($ifconfig.ip) is detected" body = "New IP address $($ifconfig.ip) is detected"
} }
Invoke-RestMethod -Uri 'https://api.pushbullet.com/api/pushes' -Body $notification -Method Post -Credential $credentials Invoke-RestMethod -Uri 'https://api.pushbullet.com/api/pushes' -Body $notification -Method Post -Credential $credentials
} }
} }
else { else {
Write-Host -ForegroundColor Red "New IP detected!" Write-Host -ForegroundColor Red "New IP detected!"
Write-Host -ForegroundColor Red "Old: $CurrentIP" Write-Host -ForegroundColor Red "Old: $CurrentIP"
Write-Host -ForegroundColor Red "New: $($ifconfig.ip)" Write-Host -ForegroundColor Red "New: $($ifconfig.ip)"
} }
} }
else { else {
Write-Host -ForegroundColor Green "No change!" Write-Host -ForegroundColor Green "No change!"
} }
#} =======
# 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!"
}
>>>>>>> c0f0bde6cf363f87c1f0213243a1d7ed173203e5
#}