आज भी मेरे पास यही सवाल था, और मैं यहाँ या Google पर देखे गए उत्तरों से संतुष्ट नहीं था, इसलिए जब भी मेरा IP पता बदलता है , तो मुझे एक Slack सूचना भेजने के लिए एक PowerShell स्क्रिप्ट लिखता हूँ ।
यदि आप एक ईमेल प्राप्त करना चाहते हैं, तो आप Outlook ईमेल का समर्थन करने वाले भिन्न संस्करण को देखने के लिए स्क्रिप्ट के लिंक पर क्लिक कर सकते हैं।
मुझे उम्मीद है कि यह किसी की मदद करता है और एक वोट कमाता है। :-)
निम्न पाठ को एक .ps1 फ़ाइल में सहेजें। इसे अपने स्वयं के स्लैक वेबहूक URL के साथ उपयुक्त रूप से संपादित करें। सहेजें। "PowerShell के साथ चलाएँ" फ़ाइल को राइट-क्लिक करें।
या आप इसे दैनिक या फिर अक्सर चलाने के लिए शेड्यूल कर सकते हैं।
#Script to compare current IP with old IP and sends Slack notification if different (and do nothing if there was no change).
#We can put this as a scheduled task to run daily.
#ScriptName: IP_change_detection_notification.ps1
$slackWebhookUrl = "XXXXXXXXXX" #put yours here
$ipDetectionUrl = "https://wtfismyip.com/text"
$IPAddFile = "C:\code\IP_change_detection_notification.dat" #absolute path to file that stores the old IP record
$slackOutputFile = "C:\code\IP_change_detection_notification_Slack.txt"
$optionalDebuggingFile = "C:\code\IP_change_detection_notification_debugging.txt"
$Request = Invoke-WebRequest $ipDetectionUrl
$IP_new = ($Request.Content.Trim())
Write-Host "Current IP address: [$IP_new]"
#Check if old IP record exists
If(Test-Path "$IPAddFile")
{
#Get old IP
$IP_old = Get-Content "$IPAddFile"
#Compare IPs
if(-not($IP_new -eq $IP_old))
{
Write-Host "Old IP address: [$IP_old]"
$msg = "Your WAN IP has changed to $IP_new (was $IP_old)!"
Write-Host "$msg"
$body = $("{""text"":""$msg""}")
Write-Host "$body"
Invoke-RestMethod -Uri $slackWebhookUrl -Method Post -ContentType 'application/json' -Body $body -OutFile $slackOutputFile
"Notification Sent"
#Overwrite and update new IP
$IP_new | Out-File $IPAddFile
}
else
{"No change, no notification"}
}
else
{
#Create new, as file not found
$IP_new | Out-File $IPAddFile
"File created"
}
$(get-date -f yyyy-MM-dd_HH_mm_ss) | Out-File $optionalDebuggingFile
#Read-Host -Prompt "Press Enter to exit" #Comment out this line if this script will be run by a cron job. Otherwise, uncomment it so that you can see the results of the script in the console.
#This script was adapted from https://gallery.technet.microsoft.com/scriptcenter/Detect-IP-address-change-aeb51118 by Satyajit
कार्य शेड्यूलर प्राप्त करने के लिए:
मुझे पॉवरशेल को एक प्रशासक के रूप में चलाना था और फिर चलाना था Get-ExecutionPolicy
, जिसने तब मुझे बताया था कि मेरा वर्तमान एक्सक्लूसिव पॉलीसी "रिस्ट्रिक्शन" था।
फिर मैं भागा Set-ExecutionPolicy RemoteSigned
(जैसा कि यहां दिखाया गया है, लेकिन यह मुझे परेशान करता है: https://stackoverflow.com/a/26955050/470749 )।
फिर एक बेसिक विंडोज कमांड प्रॉम्प्ट से, मैंने निम्न कमांड को एक दो बार चलाने की कोशिश की: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -File "C:\code\IP_change_detection_notification.ps1"
(एक बार आईपी स्टोर करने के लिए, और दूसरी बार यह जांचने के लिए कि क्या यह बदल गया था)।
(जब तक आपको वह काम न मिले, टास्क शेड्यूलर का उपयोग करने की कोशिश न करें।)
फिर मैंने कार्यक्रम के C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
रूप में और -ExecutionPolicy ByPass -File C:\code\IP_change_detection_notification.ps1
तर्क के रूप में एक कार्य निर्धारित किया ।