গতিশীল আইপি পরিবর্তনের জন্য চেক করার সহজ উপায়


12

আমার আইপি ঠিকানাটি পরিবর্তিত হয়ে গেলে, কোনও স্ক্রিপ্ট সহ সন্ধানের সহজ উপায় কী হবে?


পটভূমি তথ্য:

আমার কাছে একটি স্ট্যান্ডার্ড হোম কেবলের মডেম সংযোগ রয়েছে এবং আমার আইএসপি আমাকে একটি গতিশীল আইপি বরাদ্দ করে। এটি প্রতিবার এবং পরে পরিবর্তিত হয়, DHCP ইজারা সময়গুলি অনিয়মিত বলে মনে হয়।

মূলত, আমি আমার নিজস্ব গতিশীল ডিএনএস জিনিস করছি, এবং একটি ক্লিকের সাহায্যে আমার হোম সার্ভারের দিকে নির্দেশ করে ডিএনএস রেকর্ডগুলি আপডেট করতে পারি। কেবলমাত্র একটি আইপি পরিবর্তন সনাক্ত করা যাতে আমি সম্পূর্ণ প্রক্রিয়াটি স্বয়ংক্রিয় করতে পারি can

এখন এখানে বেশ কয়েকটি ওয়েবসাইট রয়েছে যা আপনার আইপি ঠিকানাটি ফিরিয়ে আনতে পারে এবং আমি wgetএই পৃষ্ঠাগুলির মধ্যে একটিতে ক্রোন জব এবং grepএটির আইপি ঠিকানা ব্যবহার করতে পারি ... তবে এটি সিপিইউ / ব্যান্ডউইথের ব্যবহারের দিক থেকে ওভারকিল বলে মনে হচ্ছে, এবং এটি খুব বেশি নয় চুমু খেতে হবে।

আমি আমার সার্বজনীন আইপি পুনরুদ্ধার করার জন্য কি কিছু সহজ এবং মার্জিত উপায় মিস করছি এবং এটি পরিবর্তন হয়েছে কিনা তা যাচাই করার জন্য?

অতিরিক্ত তথ্য: আমার মডেম / রাউটার একটি সস্তা ইট, এটি সে ক্ষেত্রে খুব আকর্ষণীয় কিছু করে না। আমার সার্ভারটি সেন্টোস 6 দিয়ে চলে।

উত্তর:


6

ধরে নিই যে আপনি NAT এর পিছনে রয়েছেন, আমি যে সবচেয়ে মার্জিত উপায়টি ভাবতে পারি তা হ'ল রাউটারে নিজেই একটি ক্রোন কাজ চালানো, পর্যায়ক্রমে পরীক্ষা করাও ifconfigতার বর্তমান WAN ঠিকানা পরীক্ষা করে AN এমনকি আপনি যদি কাস্টম ফার্মওয়্যার ইনস্টল করতে সক্ষম হন তবে এটি 'সস্তা ইট'-এও সম্ভব হতে পারে। তবে মার্জিত, খুব সহজ।

যেমনটি এখানে উইন্ডোজে আলোচনা করা হয়েছে , তবে সেটোগুলির পক্ষে আর্গুমেন্টটি সমানভাবে বৈধ, NAT এর পিছনে থেকে WAN আইপিকে ভোট দেওয়ার ক্ষেত্রে, আপনি এমন সমস্যায় পড়ে যাচ্ছেন যে প্রযুক্তিগতভাবে আপনার কোনও বাহ্যিক ঠিকানা নেই। পরিবর্তে, আপনি রাউটারের বিবেচনার ভিত্তিতে একটির মাধ্যমে রাউটেড হয়েছেন। স্পষ্টতই, রাউটারটি আপনার নিয়ন্ত্রণে থাকা অবধি আপনার এই তথ্যে অ্যাক্সেস থাকবে তবে স্থানীয় নেটওয়ার্কের হোস্টগুলিতে এই আইপি ঠিকানাটি যোগাযোগ করার কোনও সার্বজনীন উপায় নেই। ফলস্বরূপ, আপনার সার্ভারটি যে বাহ্যিক আইপি ব্যবহার করবে এটি কেবল রাউটারকে জিজ্ঞাসা করতে পারে না।

সর্বাধিক দক্ষ বিকল্পটি হ'ল কেবল রাউটারটিকে তার যাদু করতে দেওয়া এবং প্রকৃতপক্ষে কোনও বাহ্যিক সার্ভারের সাথে সংযোগ তৈরি করা, তারপরে অনুরোধটি উত্পন্ন ঠিকানাটি ফিরে আসতে বলছে। এই উদ্দেশ্যে বিশেষত প্রচুর ওয়েবসার্ভার সেট আপ করা হয়েছে। স্ক্রিপ্টিংয়ের জন্য, আমি http://icanhazip.com/ কে সুপারিশ করতে পারি , কারণ এতে আপনার পক্ষ থেকে আর কোনও পার্সিংয়ের প্রয়োজন নেই (কেবল আইপি সরল-পাঠ্যে ফিরে আসে)।

যদি প্রয়োজন হয়, তবে আগে যুক্ত লিঙ্কযুক্ত প্রশ্নের উত্তরগুলি বাস্তবায়নের বিষয়ে প্রচুর টিপস সরবরাহ করা উচিত।


ভাল ধারণা এবং লিঙ্ক। +1, কেবলমাত্র আমি জানি না এমন আইকনহাজিপ ওয়েবসাইটের জন্য, এবং অতিরিক্ত এইচটিএমএল ডাউনলোড এবং পার্সিংকে অপ্রয়োজনীয় করে তোলে।
সিলভার কোয়েটিয়ার

1
অথবা checkip.net-me.net/plain
অ্যালেক্স



0

আমার আজ একই প্রশ্ন ছিল এবং আমি এখানে বা গুগলে যে উত্তরগুলি দেখেছি তাতে সন্তুষ্ট নই, তাই যখনই আমার আইপি ঠিকানা পরিবর্তন হয় আমি আমাকে স্ল্যাক বিজ্ঞপ্তি প্রেরণের জন্য পাওয়ারশেল স্ক্রিপ্ট লিখেছিলাম ।

আপনি যদি কোনও ইমেল পেতে পছন্দ করেন তবে আউটলুক ইমেলগুলিকে সমর্থন করে এমন একটি ভিন্ন সংস্করণ দেখতে আপনি স্ক্রিপ্টের লিঙ্কগুলিতে ক্লিক করতে পারেন।

আমি আশা করি এটি কাউকে সহায়তা করে এবং একটি ভোট উপার্জন করে। :-)

নীচের পাঠ্যটি একটি .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হিসাবে এবং আর্গুমেন্ট হিসাবে একটি কাজ নির্ধারিত ।


এটি একটি দুর্দান্ত সমাধান, তবে দুর্ভাগ্যক্রমে ওপি উল্লেখ করেছে যে সে সেন্টস ব্যবহার করছে, সুতরাং এই প্রযুক্তিগতভাবে প্রশ্নের উত্তর দেয় না।
ম্যাক্লিওড

0

পিএস বাস্তবায়ন ব্যতীত পূর্ববর্তী উত্তরগুলি, আইপি পরিবর্তন হয়েছে কিনা আসলে আপনাকে বলবেন না। (আমি পাওয়ারশেলকে ভালবাসতে চাইছি। রায়ান কেন আমি তা করি না তা সনাক্ত করার জন্য একটি ভাল কাজ করেছেন: মৃত্যুদণ্ড কার্যকর করার অনুমতিগুলি उपার্থকতা)।

আইপি পার্সিং এতক্ষণ প্রয়োজন হয় না যখন আইপি পরিবর্তন হয় নি তখন কোনও অতিরিক্ত আউটপুট পরিবর্তন হয় না। উদাহরণস্বরূপ checkip.dyndns.com বর্তমান আইপি ঠিকানা: ddd.ddd.ddd.ddd এর মতো কিছু প্রদান করে। সুতরাং কেবলমাত্র পুরো আউটপুট তুলনা করা যথেষ্ট।

এছাড়াও আপনি যদি কার্ল ব্যবহার করছেন তবে আপনি -s পতাকা ব্যবহার করে অগ্রগতিটি গোপন করতে পারেন। যেহেতু এটি স্ট্ডারকে লেখা হয়েছে, এটি স্টডআউটকে দূষিত করে না।

সুতরাং, এখানে একটি সহজ। সিএমডি স্ক্রিপ্ট, যা আউটপুট সংরক্ষণ করতে কার্ল ব্যবহার করে। এরপরে এটি পূর্ববর্তী আউটপুটটির সাথে তুলনা করতে এফসি ব্যবহার করে, যদি কোনও হয়। ইউনিকোড, কেস সংবেদনশীলতা ইত্যাদির জন্য আমাকে এফসি বিকল্পগুলি সেট করার দরকার নেই, কারণ আইপি পরিবর্তন হয়নি, আউটপুটটি বাইনারি ম্যাচ হওয়া উচিত। ইউনিক্সে এফসির পরিবর্তে সিএমপি রয়েছে।

@REM 12/30/2017 The following work:
@REM                checkip.dyndns.com
@REM                wtfismyip.com/text
@REM                icanhazip.com
@REM                ifconfig.me/ip -- can be slow

curl icanhazip.com > CurrentIp.txt
fc /B LastIp.txt CurrentIp.txt 1> nul: 2>>&1

if ERRORLEVEL 1 (
    ECHO Ip Changed
    REM Remember for next time
    MOVE /Y CurrentIp.txt LastIp.txt 1>nul:
    exit /b 1
) else (
    ECHO Ip not Changed
)

স্পষ্টতই CurrentIp.txt লাস্টআইপি.এসটিএস্ট অনুসারে পরিবর্তন করা যেতে পারে, যেমন "% TMP% with" সহ উপসর্গ এই স্ক্রিপ্টটি সামান্য পরিবর্তন সহ টাস্ক শিডিয়ুলারের কাজ করা উচিত।


0

ওপির প্রতিক্রিয়াতে: "আমি আমার সার্বজনীন আইপি পুনরুদ্ধার করার জন্য কি কিছু সহজ এবং মার্জিত উপায় মিস করছি এবং এটি পরিবর্তন হয়েছে কিনা তা পরীক্ষা করে দেখছি?"

একটি সত্যই সহজ উত্তর না। সাময়িকভাবে আপনার আইপি আপডেট করুন।

এটি অপব্যয়জনক বলে মনে হচ্ছে, তবে "স্মার্ট" সমাধানগুলি সিপিইউ, ব্যান্ডউইথ সংরক্ষণ না করেই আরও জটিল এবং কম নির্ভরযোগ্য etc. এক ঘন্টা একবার 1500 বাইট বা তারও কম (একটি প্যাকেট) পাঠানো খুব সস্তা। একটি সম্পূর্ণ বছর নেটফ্লিক্সে 365 * 24 * 1,500 = 13 মেগ বাইট বা প্রায় 3 মিনিট রাইফেলম্যান গ্রাস করবে।

আপনার বাহ্যিক আইপি পেতে এবং মাঝেমধ্যে আপনার নতুন আইপি পোস্ট করার সিপিইউ / ব্যান্ডউইথ ব্যয়টি সম্ভবত অতিরিক্ত সময়ে আপনার আইপি পোস্ট করার চেয়ে বেশি। আমি বহু বছর ধরে প্রতি ঘন্টা প্রতি আমার আইপি হাঁসকে পোস্ট করছি, কোনও সমস্যা নেই। স্পষ্টতই যদি আপনি এই 1 / সেকেন্ডটি করতে শুরু করেন তবে আপনার ডোমেন পরিষেবাটি এটি খুঁজে বের করতে পারে এবং বিরক্ত হতে পারে। তেমনিভাবে আপনার আইপি সন্ধানের জন্য আপনি যে কোনও পরিষেবা ব্যবহার করেন তা করতে পারলে আপনি খুশি হবেন না।

একটি শেষ চিন্তা, আপনি যে প্রশ্নটি জিজ্ঞাসা করছেন তা সমস্যার উল্লেখ করার একটি অংশ। আপনার ডোমেনিক নামটি রিফ্রেশ করার ট্রিগার তখন হতে পারে যখন আপনার ডোমেন নামটি আপনার সার্ভারে সমাধান না করে। আপনি পিং ব্যবহার করতে পারেন, তবে যদি আপনার পুরানো আইপি ঠিকানাটি পুনরায় ব্যবহার করা হয় তবে নতুন আইপি ইজারা ধারক পিংকে ভাল সাড়া দিতে পারে।

এটি মনে রেখে আপনি পর্যায়ক্রমে আপনার সার্ভার থেকে একটি ছোট স্বাক্ষর / যাদু ফাইল ডাউনলোড করার চেষ্টা করতে পারেন। সত্যিই এটি কোনও স্থিতিশীল ফাইল হতে পারে যা আপনাকে জানায় যে আপনি নিজের সার্ভারটি খুঁজে পেয়েছেন, এমনকি আপনার হোম ওয়েব পৃষ্ঠাও কাজ করবে তবে একটি অস্বাভাবিক নাম ডিফল্ট html এর চেয়ে অনেক ভাল।

যদি ডি / এল ব্যর্থ হয়, তবে আপনার আইপি আপডেট করুন, আপনার ডিএনএস ক্যাশে সাফ করুন এবং আবার চেষ্টা করুন। আপনার ডিএনএস পরিষেবার উপর নির্ভর করে আপডেটটি কার্যকর হতে কয়েক মিনিট সময় নিতে পারে। এই পদ্ধতির সাহায্যে কিছু অন্যান্য বাহ্যিক আইপি সাইটের উপর নির্ভরতা সরে যায় এবং আপনি যা জানতে চান তা বাস্তবে পরীক্ষা করে: অন্যরা কি আমার সাইটে পৌঁছাতে পারে?


0

আপনাকে সাহায্য করতে পারে এমন বিকল্প বিকল্প হিসাবে, আমি বাহ্যিক আইপি ঠিকানা পরিবর্তনের জন্য নিরীক্ষণের জন্য ডিজাইন করা পাইগন স্ক্রিপ্ট লিখেছি। আমি এটি লিনাক্সের অধীনে ব্যবহার করি তবে এটি পাইথনটি উপযুক্ত পাইথন পরিবেশ স্থাপনের পরে উইন্ডোজটিতে ঠিক কাজ করা উচিত। এটি বর্তমানে "বর্তমান" বাহ্যিক আইপি ঠিকানাটি একটি ফাইলে সংরক্ষণ করে এবং চালানোর সময় একটি নতুন আইপি ঠিকানাটি ধরে ফেলে এবং তারপরে এটি পুরানোটির বিপরীতে পরীক্ষা করে। কোনও পরিবর্তন সনাক্ত হলে আপনাকে ইমেল করার নকশা এটি।

এটি ক্রোনজব (লিনাক্স) বা নির্ধারিত টাস্ক (উইন্ডোজ) হিসাবে চালানোর জন্য ডিজাইন করা হয়েছে এবং এটি নিজে ব্যাকগ্রাউন্ড ডেমন হিসাবে চালায় না।

গিথুব সংগ্রহস্থলের লিঙ্কটি এখানে: https://github.com/begleysm/ipwatch

আশা করি এটি সাহায্য করে!


-2

আমি ব্যবহার করি curl ifconfig.me, তবে এটি ডেবিয়ান ব্যতীত অন্য প্ল্যাটফর্মে চেষ্টা করেছি এমন কিছু নয়।


আমি (এবং অন্যান্য) কমান্ড লাইন থেকে এটি ধীর গতিতে দেখেছি। দেখুন "কার্ল ifconfig.me" হাস্যকরভাবে কমান্ড লাইন # 4 github.com/learn-co-curricule/fe-how-the-web-works/issues/4
অ্যান্ড্রু ডেনিসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.