सवाल मेरे सार्वजनिक आईपी को निर्धारित करने के लिए कमांड?


अगर मैं जांच करता हूं गूगल, मैं अपना सार्वजनिक आईपी देख सकता हूं। उबंटू कमांड लाइन पर कुछ ऐसा है जो मुझे एक ही जवाब देगा?


526
2018-01-16 11:50


मूल


"गतिशील आईपी", "इंटरनेट पर कुछ अन्य सिस्टम का उपयोग कर एसएसएच", "कमांड जो वर्तमान सार्वजनिक आईपी प्रदर्शित करेगा"। आप यहां चिकन / अंडे की समस्या देखते हैं? आप अपने पते को जानने के बिना रिमोट सर्वर पर कमांड कैसे चला सकते हैं? आपको no-ip.com / DynDNS.org जैसी सेवाओं में अधिक रुचि हो सकती है। - gertvdijk
कोई भी मेरे आईपी को सार्वजनिक आईपी जानने के बिना एसएसएच नहीं कर सकता ... dynDNS को बहुत अधिक खर्च होता है और कोई भी आईपी कठिन काम नहीं करता है लेकिन स्थिति इसकी अनुमति नहीं देती है ... वैसे भी सवाल का जवाब पहले ही दिया जा चुका है .. आपके सुझाव के लिए धन्यवाद - Z9iT
पुनश्च duckduckgo.com/?q=ip (कोई कमांड लाइन नहीं, लेकिन कोई बड़ा भाई जी नहीं) - Campa
शायद यह एक अलग सवाल होना चाहिए, लेकिन जब मेरा सार्वजनिक आईपी पता बदलता है तो मैं एक चेतावनी देखना चाहता हूं। अभी के लिए, मैं सिर्फ crontab में निम्नलिखित उत्तरों का उपयोग कर रहा हूँ notify-send। - PJ Brunet


जवाब:


यदि आप राउटर के पीछे नहीं हैं, तो आप इसे इस्तेमाल कर सकते हैं ifconfig

यदि आप राउटर के पीछे हैं, तो आपका कंप्यूटर सार्वजनिक आईपी पते के बारे में नहीं पता होगा क्योंकि राउटर नेटवर्क पता अनुवाद करता है। आप कुछ वेबसाइट पूछ सकते हैं कि आपका सार्वजनिक आईपी पता क्या उपयोग कर रहा है curl या wget और उस जानकारी को निकालें जो आपको चाहिए:

curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  

या छोटा

curl ipinfo.io/ip

750
2018-01-16 11:56



ty - मैंने पोस्ट करने के ठीक बाद, मुझे एहसास हुआ कि मैंने पहले जवाब के लिए Google नहीं किया था: ऐसा लगता है कि यह काम करेगा curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  अन्य संभावनाएं यहां सूचीबद्ध हैं: go2linux.org/what-is-my-public-ip-address-with-linux - kfmfe04
सुनिश्चित करें - आप इसे अपने उत्तर में जोड़ सकते हैं - kfmfe04
स्पष्टीकरण के लिए: यह एक हैक था, और उस पर एक बहुत बदसूरत था, इसलिए मैंने इसे आसान बनाने के लिए एक संपादन किया और कुछ ऐसा जो लोग याद कर सकते हैं। - jrg♦
जैसा कि जियोवानी पी ने कहा था। ओपी स्वीकार किए गए anwser बदलना चाहिए। - loostro
कर्ल-एस ipinfo.io/ip - chao


बाहरी आईपी खोजने के लिए, आप या तो बाहरी वेब-आधारित सेवाओं का उपयोग कर सकते हैं, या सिस्टम आधारित विधियों का उपयोग कर सकते हैं। बाहरी सेवा का उपयोग करना आसान है, साथ ही ifconfig आधारित समाधान केवल आपके सिस्टम में काम करेंगे यदि आप पीछे नहीं हैं NAT। विस्तार से नीचे दो तरीकों पर चर्चा की गई है।

बाहरी सेवाओं का उपयोग कर बाहरी आईपी ढूँढना

कमांडलाइन ब्राउज़र या डाउनलोड टूल के माध्यम से बाहरी सेवा का उपयोग करना सबसे आसान तरीका है। जबसे wget उबंटू में डिफ़ॉल्ट रूप से उपलब्ध है, हम इसका उपयोग कर सकते हैं।
अपने आईपी को खोजने के लिए, उपयोग-

$ wget -qO- http://ipecho.net/plain ; echo

के सौजन्य से:

आप भी इस्तेमाल कर सकते हैं lynx(ब्राउज़र) या curl की जगह में wget अपने बाहरी आईपी को खोजने के लिए, उपरोक्त आदेश में मामूली विविधताओं के साथ।

का उपयोग करते हुए curl आईपी ​​खोजने के लिए:

$ curl ipecho.net/plain

बेहतर प्रारूपित आउटपुट उपयोग के लिए:

$ curl ipecho.net/plain ; echo

एक तेज (तर्कसंगत रूप से सबसे तेज़) विधि का उपयोग कर dig साथ में OpenDNS रिज़ॉल्वर के रूप में:

अन्य उत्तर यहां सभी रिमोट सर्वर पर HTTP पर जाते हैं। कुछ   उन्हें आउटपुट की पार्सिंग की आवश्यकता होती है, या उपयोगकर्ता-एजेंट हेडर पर भरोसा करते हैं   सादे पाठ में सर्वर को जवाब देने के लिए। वे काफी बदलते हैं   अक्सर (नीचे जाएं, अपना नाम बदलें, विज्ञापन डालें, बदल सकते हैं   आउटपुट प्रारूप आदि)।

  1. DNS प्रतिक्रिया प्रोटोकॉल मानकीकृत है (प्रारूप संगत रहेगा)।
  2. ऐतिहासिक रूप से डीएनएस सेवाएं (ओपनडीएनएस, Google पब्लिक डीएनएस, ..) लंबे समय तक जीवित रहती हैं और अधिक स्थिर, स्केलेबल और आम तौर पर दिखती हैं   जो भी नया हिप whatismyip.com HTTP सेवा आज गर्म है के बाद।
  3. (उन geeks के लिए जो माइक्रो ऑप्टिमाइज़ेशन की परवाह करते हैं), यह विधि स्वाभाविक रूप से तेज़ी से होनी चाहिए (केवल कुछ माइक्रो सेकंड द्वारा ही)।

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

N.B: आउटपुट संकेतक हैं और वास्तविक नहीं हैं।

के सौजन्य से:  http://www.if-not-true-then-false.com/2010/linux-get-ip-address/

अद्यतन करें 

  1. LANG=c में जोड़ा गया है ifconfig आधारित उपयोग, ताकि लोकल सेटिंग के बावजूद यह हमेशा अंग्रेजी आउटपुट देता है।

364
2018-06-01 12:10



@ Z9iT, ज़रूर .. यह किसी भी लिनक्स वितरण में काम करना चाहिए बशर्ते कि आपने wget इंस्टॉल किया हो। जैसा कि कहा गया है कि यदि आपके पास पहले से ही कर्ल या लिंक्स उपलब्ध है तो कृपया इसके बजाय इसका उपयोग करें। इतना उपयोग करने के लिए आपको रूट अनुमति की आवश्यकता होगी sudo apt-get install wget - saji89
Ifconfig के साथ आदेश केवल काम करते हैं, अगर आप एनएटी के पीछे नहीं हैं। - lukassteiner
महज प्रयोग करें -w गूंज के बजाय कर्ल विकल्प :) curl -w '\n' ident.me - drAlberT
खुदाई का उपयोग कर यह प्रस्ताव बहुत अच्छा है unix.stackexchange.com/questions/22615/... - binaryanomaly
@saji ifconfig यदि अप्रचलित है, तो कृपया उपयोग करें iproute2 ; ^)। आदेश होगा ip -o -4 a s eth0 | awk '{sub(/\/.*/, "", $4);print $4}'। - bufh


मेरा पसंदीदा हमेशा रहा है:

curl ifconfig.me

सरल, टाइप करने में आसान है।

आपको पहले कर्ल स्थापित करना होगा;)

अगर ifconfig.me नीचे है तो icanhazip.com और ipecho.net आज़माएं

curl icanhazip.com

या

curl ipecho.net

103
2018-06-01 12:41



@ Z9iT, मैंने अभी इसे अभी चेक किया है। हां, यह आपके टर्मिनल में बाहरी आईपी आउटपुट करेगा। - saji89
प्रतिक्रिया समय से ifconfig.me लगता है कि थोड़ा धीमा लगता है ipecho.net। - Drew Noakes
यदि आपके पास नहीं है curl लेकिन है wget: wget -U curl -qO- ifconfig.me - Stéphane Chazelas
ifconfig.me प्रतिक्रिया नहीं दे रहा है :( - Asfand Qazi
@AsfandYarQazi - यहां काम कर रहा है। आप वैकल्पिक विकल्पों में से एक को आजमा सकते हैं, icanhazip.com - Panther


icanhazip.com मेरी पसंदीदा है।

curl icanhazip.com

आप आईपीवी 4 को स्पष्ट रूप से अनुरोध कर सकते हैं:

curl ipv4.icanhazip.com

यदि आपके पास नहीं है curl आप उपयोग कर सकते हैं wget बजाय:

wget -qO- icanhazip.com

55
2018-06-01 17:23



प्रयत्न ipv4.icanhazip.com - yprez
आईपीवी 4: curl ipv4.icanhazip.com     आईपीवी 6: curl ipv6.icanhazip.com - Peter
Busybox में कर्ल नहीं है, इसके बजाय इसका उपयोग करें: wget -qO- http://icanhazip.com - Hengjie
यहां एक बैश-केवल आदेश है: exec 3<>/dev/tcp/icanhazip.com/80 && echo -e 'GET / HTTP/1.0\n' >&3 && cat <&3 - jfs
ipv6.icanhazip.com ऐसा लगता है कि अब और काम नहीं कर रहा है। - Hibou57


मैंने सब कुछ परेशान और धीमा पाया है, इसलिए मैंने अपना खुद लिखा। यह सरल और तेज़ है।

इसकी एपीआई चालू है http://api.ident.me/

उदाहरण:

curl ident.me
curl v4.ident.me
curl v6.ident.me

44
2018-01-03 15:49



वाह, वह था वास्तव में तेजी से! - waldyrious
मुझे लगता है icanhazip.com समाधान तेज़ और इसमें आउटपुट में एक नई लाइन शामिल है। - Tyler Collier
हाँ, यह वास्तव में हाल ही में तेजी से था। बस मेरे समाधान tweaked। - Pierre Carrier
कुडोस! 2 साल और आप अभी भी इसे बनाए रख रहे हैं। बहुत बढ़िया। "मुझे पहचानें", मेरे दिमाग में क्या आता है, जब मुझे आईपी जांच की आवश्यकता होती है :) - Mohnish
@PierreCarrier v6.ident.me काम नहीं करता - SebMa


आप अपने सार्वजनिक आईपी को जानने के लिए HTTP अनुरोध के बजाय एक DNS अनुरोध का उपयोग कर सकते हैं:

$ dig +short myip.opendns.com @resolver1.opendns.com

यह उपयोगकर्ता है resolver1.opendns.com जादुई हल करने के लिए डीएनएस सर्वर myip.opendns.com मेजबाननाम तुंहारे आईपी ​​पता।


37
2018-02-27 15:07



ये है वास्तव में तेजी से। मैंने एक गर्मजोशी निष्पादन किया, फिर इनमें से प्रत्येक को 10 निष्पादन और curl icanhazip.com। के लिए औसत curl संस्करण: 174 एमएमएस। DNS-only संस्करण के लिए औसत: 9 एमएमएस। ~ 1 9 x तेज। यह भी देखें: unix.stackexchange.com/a/81699/8383 - Adam Monsen
@AdamMonsen लिंक के लिए धन्यवाद। DNS का उपयोग करने का बिंदु (जैसा कि आपने जो लिंक लिखा है, वह है) यह है कि प्रतिक्रिया मानक (और बदलने की संभावना नहीं है) और सेवा (ओपनडीएनएस) अपने अधिकांश http विकल्पों की तुलना में अधिक समय तक टिक सकती है। अनुरोध को शुरू करने के लिए समय लगता है कि आदेश शुरू करने के समय से छाया हो सकती है। - jfs
हां। अगर मैं आश्चर्यचकित नहीं होगा curl खुद से धीमा है dig। भले ही वे यथासंभव समान होने के लिए पुनः लिखे गए हों, curl अभी भी धीमा हो जाएगा; यह HTTP का उपयोग करता है (समेत डीएनएस) और dig केवल DNS का उपयोग करता है। - Adam Monsen


मैं जिस का उपयोग कर रहा हूं वह है:

wget -O - -q icanhazip.com

हाँ, आपके पास आईपी हो सकता है :-)


18
2018-01-16 14:20



मैं पसंद करता हूं curl icanhazip.com कभी कभी wget केवल एक ही उपलब्ध है, लेकिन कभी-कभी नहीं wget साथ ही उपलब्ध है curl आपका एकमात्र विकल्प है (जैसे ओएस / एक्स)। किसी भी तरह से curl icanhazip.com लगभग उतना आसान है जितना आसान है curl ifconfig.me लेकिन बहुत मजेदार ;-) - TryTryAgain


अमेज़ॅन एडब्ल्यूएस

curl http://checkip.amazonaws.com

नमूना उत्पादन:

123.123.123.123

क्योंकि मुझे यह पसंद है:

  • यह सिर्फ सादे टेक्स्ट आईपी देता है, और कुछ नहीं
  • यह एक प्रसिद्ध प्रदाता से है जो जल्द ही ऑफ़लाइन जाने की संभावना नहीं है

16
2017-12-21 22:06





इस में टाइप करें, दबाएं दर्ज जहां संकेत दिया गया:

telnet ipecho.net 80दर्ज
GET /plain HTTP/1.1दर्ज
HOST: ipecho.net  दर्ज
BROWSER: web-kitदर्ज
दर्ज

यह मैन्युअल रूप से HTTP अनुरोध सबमिट करता है, जो आपके आईपी को नीचे के नीचे वापस कर देगा HTTP/1.1 200 OK reply

उदाहरण आउटपुट:

$ telnet ipecho.net 80
Trying 146.255.36.1...
Connected to ipecho.net.
Escape character is '^]'.
GET /plain HTTP/1.1
HOST: ipecho.net
BROWSER: web-kit

HTTP/1.1 200 OK
Date: Tue, 02 Jul 2013 07:11:42 GMT
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

f
111.222.333.444
0

12
2017-07-02 06:38



अच्छा, यह अच्छी तरह से काम करता है, कर्ल स्थापित करने के लिए मेरे लिए एक लाभ नहीं था: एक लाइनर: printf "प्राप्त / सादा HTTP / 1.1 \ n हॉस्ट: ipecho.net \ n ब्राउजर: वेब-किट \ n \ n" | एनसी ipecho.net 80 - Ozone


एक और तेज़ (शायद सबसे तेज़, अपेक्षाकृत) हो सकता है

curl ipecho.net/plain

9
2017-12-31 20:49