सवाल एक शेल स्क्रिप्ट में सार्वजनिक आईपी पता ढूँढना


मैं ifconfig या hostname -i कमांड का उपयोग कर अपना आईपी पता पा सकता हूं।

लेकिन मैं अपना सार्वजनिक आईपी कैसे ढूंढूं?

(मेरे पास एक स्थिर सार्वजनिक आईपी है लेकिन मैं इसे यूनिक्स कमांड का उपयोग करके ढूंढना चाहता हूं)


38
2017-10-06 05:16


मूल


क्या आप इसे प्रोग्रामिक रूप से करने की कोशिश कर रहे हैं? - Andrew Keith
हाँ शेल स्क्रिप्ट में - shantanuo
क्या आप लिनक्स, मैकॉक्स, फ्रीबीएसडी आदि का उपयोग कर रहे हैं? इन अलग ओएस के लिए 'ifconfig' का आउटपुट अलग है, और 'आईपी' कमांड MacOSX पर मौजूद नहीं है। क्या आप अपने कंप्यूटर के आईपी की तलाश में हैं (आपको ifconfig, या कुछ पार्स करने के लिए एक शेल स्क्रिप्ट की आवश्यकता होगी), या आपका राउटर (नीचे दी गई वेबसाइटें काम कर सकती हैं)? - Stefan Lasiewski


जवाब:


curl ifconfig.me

curl ifconfig.me/ip  (सिर्फ आईपी के लिए)

curl ifconfig.me/all  (अधिक जानकारी के लिए, समय लगता है)

अधिक आदेशों के लिए यहां जाएं: http://ifconfig.me/#cli_wrap


48
2018-06-01 04:47



आईपीवी 6 पते के बारे में क्या? - Matt3o12
वह लिंक मर चुका है। आप इसके बजाय इसका उपयोग कर सकते हैं: curl http://checkip.amazonaws.com/ - Farhan.K
@ फरहान.के कृपया इसे एक उत्तर के रूप में पोस्ट करें क्योंकि यह शायद सबसे अच्छा जवाब है। यदि आप नहीं करते हैं, तो मैं आपके नाम का सुझाव दूंगा और इसका उल्लेख करूंगा - Aliostad
@Aliostad इसे पोस्ट करने के लिए स्वतंत्र महसूस :) - Farhan.K
@ फरहान.के अर्ग, संरक्षित: / - Aliostad


आप अनुरोध कर सकते हैं myip.opendns.com। OpenDNS से। dig @208.67.222.220 myip.opendns.com


26
2017-11-10 01:01



यह बस अच्छा है। संस्करण याद रखने के लिए किसी भी आसान के लिए, आप डाल सकते हैं dig @resolver1.opendns.com myip.opendns.com। या विंडोज़ पर: nslookup myip.opendns.com resolver1.opendns.com। - Michael Kropat
मेरे लिए सबसे अच्छा क्या काम किया: dig @208.67.222.220 myip.opendns.com +short पूरे जवाब के बिना सीधे आईपी प्राप्त करने के लिए। - Christopher Chiche


dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short

dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short

dig -4 @resolver1.opendns.com -t a myip.opendns.com +short


ध्यान दें कि उपरोक्त केवल आईपीवी 4 के लिए काम करता है (इनमें से कोई भी रिज़ॉल्यूशन वर्तमान में आईपीवी 6 नहीं है, लेकिन अगर आप छोड़ देते हैं -4 और स्पष्ट -t a, तो आप भविष्य में इसे तोड़ने का जोखिम उठाते हैं (Google के अपवाद के साथ txt, जो वास्तव में Google द्वारा ठीक से सक्षम होने पर, एक दिन IPv6 के लिए काम कर सकता है))।

ध्यान दें कि myip.opendns.com केवल के माध्यम से हल करने योग्य है resolver1.opendns.com, और साथ नहीं auth1.opendns.com - इसलिए, वे अपने स्वयं के डोमेन नाम के कुछ DNS अपहरण और मैन-इन-द-बीच कर रहे हैं! इस प्रकार, आप इसका उपयोग किसी यादृच्छिक रिज़ॉल्वर के आईपी को खोजने के लिए नहीं कर सकते हैं resolver1.opendns.com के लिए आधिकारिक नहीं है myip.opendns.com

ध्यान दें कि o-o.myaddr.l.google.com सबसे लचीला और भविष्य के सबूत दृष्टिकोण की तरह दिखता है; यह जांचने के लिए भी अच्छा है कि आपका DNS रिज़ॉल्वर क्लाइंट सबनेट के लिए प्रयोगात्मक EDNS0 एक्सटेंशन का समर्थन करता है (जो कि बहुत कम रिज़ॉल्यूशन के लिए समर्थन है):

% dig @8.8.8.8 -t txt o-o.myaddr.l.google.com +noall +answer +stats | tail -8
;; global options:  printcmd
o-o.myaddr.l.google.com. 60     IN      TXT     "74.125.189.16"
o-o.myaddr.l.google.com. 60     IN      TXT     "edns0-client-subnet 88.198.54.0/24"
;; Query time: 13 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Dec  8 20:38:46 2013
;; MSG SIZE  rcvd: 114

17
2017-12-09 04:46



@ Matt3o12 <मुझे ओपनडीएनएस मिला: dig +short AAAA myip.opendns.com @2620:0:ccc::2। - bufh
आजकल Google से TXT रिकॉर्ड प्राप्त करने की विधि आईपीवी 4 और आईपीवी 6 दोनों का समर्थन करती है ताकि आपको निर्दिष्ट करना चाहिए -4 या -6 अगर आपको एक विशिष्ट आईपी संस्करण की आवश्यकता है। - Martin


यदि आपके पास इंटरनेट का उपयोग है तो एक बहुत ही सरल उपयोगकर्ता है:

curl icanhazip.com

ध्यान रखें, आपके आईपी के लिए तीसरे पक्ष के स्रोतों पर भरोसा करना समस्याग्रस्त हो सकता है, खासकर यदि उस डेटा के साथ आपके द्वारा किए गए विशेष अर्थ का अर्थ है।

एक और भरोसेमंद तरीका एक ज्ञात, भरोसेमंद DNS सर्वर (आदर्श रूप से DNSSEC चल रहा है) चुनना है और इसके साथ बॉक्स के होस्टनाम से पूछताछ करना है, जिससे आपके DNS सर्वर में ऐसी प्रविष्टियां उपलब्ध हैं;

dig @trustworthysource.com +short `hostname`

12
2017-11-10 00:13





मैंने इसके लिए एक सरल और तेज़ webservice लिखा था।

curl ident.me

आप अपने आईपीवी 4 के लिए पूछ सकते हैं:

curl v4.ident.me

या आईपीवी 6:

curl v6.ident.me

और एपीआई पर दस्तावेज है http://api.ident.me/


8
2018-01-03 22:34





एक रास्ता: http://www.whatismyip.com/


7
2017-10-06 05:17



दूसरा तरीका: ipchicken.com - bobby
या, यदि आप एक एक्सएमएल एपीआई चाहते हैं, ip-address.domaintools.com/myip.xml। मैंने वहां एक देखा जो सादा पाठ देता है। - ceejayoz
चौथा रास्ता: moanmyip.com - MikeyB
नियमों का पालन करें या आपको कुछ भी नहीं मिलेगा। whatismyip.com/faq/automation.asp - Ladadadada


अगर

  1. आपके पास केवल है एक सार्वजनिक आईपी पता और
  2. आप सीधे इंटरनेट से जुड़े हुए हैं (कोई एनएटी / प्रॉक्सी / वीपीएन आदि नहीं)

तो आप अपने सभी इंटरफेस के आईपी पते की सूची प्राप्त करने के लिए इंटरफेस के आईपी पते ("इनसेट एड्र:" भाग) के लिए ifconfig से आउटपुट को पार्स कर सकते हैं। एक आईपी पता जो निजी सीमा में नहीं है (देखें http://en.wikipedia.org/wiki/IP_address#IPv4_private_addresses ) आपका सार्वजनिक आईपी पता है।

एक ही सूची के माध्यम से भी प्राप्त किया जा सकता है

ip addr show

जो पार्स करना आसान हो सकता है।

यदि आपके पास प्रत्यक्ष इंटरनेट कनेक्शन (एनएटी इत्यादि) नहीं है, तो बाहरी सहायता के बिना आपका सार्वजनिक आईपी पता खोजने का कोई तरीका नहीं है (क्योंकि आपका कंप्यूटर इसे नहीं जानता है)। तो आपको इसे अन्य उत्तरों की तरह करना होगा।


5
2017-10-07 00:59