बाहरी आईपी खोजने के लिए, आप या तो बाहरी वेब-आधारित सेवाओं का उपयोग कर सकते हैं, या सिस्टम आधारित विधियों का उपयोग कर सकते हैं। बाहरी सेवा का उपयोग करना आसान है, यह भी ifconfig
आधारित समाधान आपके सिस्टम में तभी काम करेंगे जब आप पीछे न हों NAT
। नीचे दो तरीकों पर विस्तार से चर्चा की गई है।
बाहरी आईपी का उपयोग बाहरी सेवाओं का उपयोग करना
सबसे आसान तरीका है एक कमांडलाइन ब्राउज़र या डाउनलोड टूल के माध्यम से बाहरी सेवा का उपयोग करना। चूंकि wget
उबंटू में डिफ़ॉल्ट रूप से उपलब्ध है, हम इसका उपयोग कर सकते हैं।
अपना आईपी खोजने के लिए, का उपयोग करें
$ wget -qO- https://ipecho.net/plain ; echo
सौजन्य :
आप अपने बाहरी आईपी को खोजने के लिए उपर्युक्त कमांड में मामूली बदलावों के साथ lynx
(ब्राउज़र) का उपयोग कर सकते हैं ।curl
wget
curl
आईपी खोजने के लिए उपयोग करना :
$ curl https://ipecho.net/plain
बेहतर स्वरूपित आउटपुट उपयोग के लिए:
$ curl https://ipecho.net/plain ; echo
एक तेजी से (यकीनन सबसे तेजी से) विधि का उपयोग कर dig
के साथ OpenDNS
रिसोल्वर के रूप में:
अन्य उत्तर यहाँ सभी एक दूरस्थ सर्वर से HTTP पर जाते हैं। उनमें से कुछ को आउटपुट की पार्सिंग की आवश्यकता होती है, या सादे पाठ में सर्वर को प्रतिक्रिया देने के लिए उपयोगकर्ता-एजेंट हेडर पर भरोसा करते हैं। वे भी अक्सर बदलते हैं (नीचे जाएं, अपना नाम बदलें, विज्ञापन डालें, आउटपुट प्रारूप बदल सकते हैं आदि)।
- DNS प्रतिक्रिया प्रोटोकॉल मानकीकृत है (प्रारूप संगत रहेगा)।
- ऐतिहासिक रूप से DNS सेवाएं (OpenDNS, Google सार्वजनिक DNS, ..) बहुत लंबे समय तक जीवित रहती हैं और अधिक स्थिर, परिमाप्य और आमतौर पर देखा जाता है कि आज जो भी नए हिप whatismyip.com HTTP सेवा की तुलना में गर्म है।
- (उन गीक्स के लिए जो माइक्रो-ऑप्टिमाइज़ेशन की परवाह करते हैं), यह विधि स्वाभाविक रूप से तेज़ होनी चाहिए (केवल कुछ माइक्रो सेकंड के द्वारा हो)।
रिज़ॉल्वर के रूप में OpenDNS के साथ खुदाई का उपयोग करना:
$ dig +short myip.opendns.com @resolver1.opendns.com
111.222.333.444
से कॉपी किया गया: https://unix.stackexchange.com/a/81699/14497
बाहरी आईपी को बाहरी सेवाओं पर निर्भर किए बिना खोजना
- यदि आप अपने नेटवर्क इंटरफ़ेस का नाम जानते हैं
अपने टर्मिनल में निम्नलिखित टाइप करें:
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
इसके बाद के संस्करण में, की जगह <interface_name>
, आपके वास्तविक इंटरफेस के नाम के साथ जैसे: eth0
, eth1
, pp0
, आदि ...
उदाहरण उपयोग:
$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
- यदि आप अपने नेटवर्क इंटरफ़ेस का नाम नहीं जानते हैं
अपने टर्मिनल में निम्नलिखित टाइप करें (इससे आपके सिस्टम में प्रत्येक नेटवर्क इंटरफ़ेस का नाम और आईपी पता प्राप्त होता है):
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
उदाहरण उपयोग:
$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444
NB: आउटपुट सांकेतिक हैं और वास्तविक नहीं हैं।
सौजन्य: https://www.if-not-true-then-false.com/2010/linux-get-ip-ddb/
अपडेट करें
LANG=c
ifconfig
आधारित usages में जोड़ा गया है , ताकि यह हमेशा अंग्रेजी आउटपुट देता है, भले ही लोकेल सेटिंग के बावजूद।