लिनक्स में बैश में आईपी एड्रेस की जियोलोकेशन जानकारी प्राप्त करें
कभी-कभी आपको आईपी पते के लिए भौगोलिक स्थान की जानकारी जल्दी से प्राप्त करने की आवश्यकता होती है। Linux में, आप अपना समय बचाने और इस जानकारी को शीघ्रता से पुनर्प्राप्त करने के लिए कंसोल ऐप्स की शक्ति का उपयोग कर सकते हैं। आइए देखें कि यह कैसे किया जा सकता है।
विज्ञापन
किसी विशिष्ट आईपी पते के बारे में भौगोलिक स्थान की जानकारी प्राप्त करने के लिए, आपको कुछ ऑनलाइन सेवा का उपयोग करने की आवश्यकता है जो उपयुक्त एपीआई प्रदान करती है। प्राधिकरण प्रक्रिया और एपीआई कुंजी प्रबंधन से बचने के लिए कुछ सार्वजनिक सेवा का उपयोग करना एक अच्छा विचार है। ऐसी ही एक सेवा है फ्रीजीओआईपी.नेट।
यह आईपी पते के भौगोलिक स्थान को खोजने के लिए एक सार्वजनिक HTTP एपीआई प्रदान करता है। यह समय क्षेत्र, अक्षांश और देशांतर जैसी अन्य प्रासंगिक जानकारी के साथ शहरों से जुड़े आईपी पते के डेटाबेस का उपयोग करता है। यह बहुत उपयोगी है।
सेवा JSON या XML के रूप में खोज परिणाम प्रदान कर सकती है। इसलिए, यदि हम कर्ल को कुछ JSON पार्सर के साथ जोड़ते हैं, तो हम आवश्यक जानकारी प्राप्त कर सकते हैं।
मैं अपने पसंदीदा JSON पार्सर का उपयोग करूंगा, jq:
यह बहुत हल्का और तेज है।
हमारे मामले के लिए, क्वेरी इस प्रकार होनी चाहिए:
http://freegeoip.net/json/119.94.116.145
यहां "जेसन" भाग वांछित डेटा प्रारूप है। JSON के अलावा, यह XML या CSV हो सकता है।
आइए क्वेरी को कर्ल के साथ चलाएं और आउटपुट देखें:
परिणाम कच्चा JSON आउटपुट है जिसे पढ़ना मुश्किल है। परिणाम सेट की उपस्थिति में सुधार करने के लिए, आइए jq टूल का उपयोग करें। इसे कर्ल के साथ इस प्रकार मिलाएं:
कर्ल http://freegeoip.net/json/119.94.116.145|jq
आउटपुट को पढ़ना आसान होगा:
jq का उपयोग करके, आप आउटपुट को फ़िल्टर कर सकते हैं और इसे केवल आवश्यक फ़ील्ड दिखा सकते हैं। निम्न आदेश केवल देश का नाम, अक्षांश और देशांतर प्रदर्शित करेगा:
कर्ल http://freegeoip.net/json/119.94.116.145|jq -आर '.देश_नाम, अक्षांश, देशांतर'
आप इस कमांड को निम्न शेल स्क्रिप्ट के रूप में सहेज सकते हैं:
#!/बिन/श। कर्ल -एस http://freegeoip.net/json/$1|jq -आर '.देश_नाम, अक्षांश, देशांतर'
अगली बार जब आपको भौगोलिक स्थान की जानकारी प्राप्त करने की आवश्यकता हो, तो आप अपनी स्क्रिप्ट को इस तरह निष्पादित कर सकते हैं:
./geo.sh IP_address
बस, इतना ही।