আমার আজ একই প্রশ্ন ছিল এবং আমি এখানে বা গুগলে যে উত্তরগুলি দেখেছি তাতে সন্তুষ্ট নই, তাই যখনই আমার আইপি ঠিকানা পরিবর্তন হয় আমি আমাকে স্ল্যাক বিজ্ঞপ্তি প্রেরণের জন্য পাওয়ারশেল স্ক্রিপ্ট লিখেছিলাম ।
আপনি যদি কোনও ইমেল পেতে পছন্দ করেন তবে আউটলুক ইমেলগুলিকে সমর্থন করে এমন একটি ভিন্ন সংস্করণ দেখতে আপনি স্ক্রিপ্টের লিঙ্কগুলিতে ক্লিক করতে পারেন।
আমি আশা করি এটি কাউকে সহায়তা করে এবং একটি ভোট উপার্জন করে। :-)
নীচের পাঠ্যটি একটি .ps1 ফাইলে সংরক্ষণ করুন। আপনার নিজের স্ল্যাক ওয়েবহুক URL এর সাথে যথাযথ হিসাবে এটি সম্পাদনা করুন। সংরক্ষণ. "পাওয়ারশেলের সাথে রান করুন" এ ফাইলটিতে ডান ক্লিক করুন।
অথবা আপনি এটি প্রতিদিন চালানোর জন্য বা যদিও প্রায়শই শিডিউল করতে পারেন।
#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
হিসাবে এবং আর্গুমেন্ট হিসাবে একটি কাজ নির্ধারিত ।