IP पता प्राप्त करने के लिए शेल कमांड?


24

क्या उबंटू बॉक्स के लिए आईपी पता खोजने के लिए कोई बैश कमांड है? मुझे IP पता खोजने की आवश्यकता है ताकि मैं बाद में मशीन में ssh कर सकूं।

जवाबों:


32

/sbin/ifconfig -a


हाँ और यदि आप सर्वर को दूरस्थ रूप से संचालित करने की योजना बना रहे हैं, vi /etc/network/interfacesऔर इंटरफ़ेस सेट करें static( help.ubuntu.com/8.10/serverguide/C/network-configuration.html देखें )
gravyface

इस कमांड को चलाने से संख्याओं की पूरी सूची का पता चलता है। हमें किसका उपयोग करना चाहिए? inet addr?
कंप्यूटर

25

आप उपयोग कर सकते हैं:

/bin/ip addr

3
@opierce आपने mpbloch के उत्तर को सही के रूप में चिह्नित किया है, लेकिन FYI के रूप में, आपको इस उत्तर का उपयोग करना चाहिए, क्योंकि यह iproute2 सुइट का हिस्सा है। ifconfigअब चरणबद्ध किया जा रहा है।
jwbensley

3
आप बस चलाकर उसे छोटा बना सकते हैं ip a
gak

19

यदि आपके पास उपयोग, जाँच में एक आंतरिक पता है

curl http://myip.dnsomatic.com

यूनिक्स गोले पर एक अच्छा विचार हो सकता है।
या, बस उस URL को अपने ब्राउज़र में प्लैंक करें।


यदि आपको " ifconfig -a" परिणाम से एक अलग उत्तर मिलता है ,
तो ifconfigअपना आंतरिक पता दिया - जो शायद बाहर से काम नहीं करेगा।


यहां तक ​​कि अगर सब ठीक लगता है, तो आपके पास एक फ़ायरवॉल हो सकती है जो आने वाले ssh कनेक्शन को समाप्त कर देगी ।
किस समय आपको मशीन पर एक ब्राउज़र से ब्याज के बंदरगाह की कोशिश करनी चाहिए,

http://www.canyouseeme.org/

इससे कनेक्टिविटी की पुष्टि होगी,

  • बाहरी आईपी पता (उस पृष्ठ पर आपको यह दिखाते हुए)
  • नेट, पोर्ट फॉरवर्ड
  • फायरवॉल

यह सच है, लेकिन अगर ऐसा है, तो आंतरिक आईपी जो भी हो, वहां ssh से मिलान करने के लिए शायद NAT / पोर्ट अग्रेषण नियम नहीं हैं।
काइल ब्रान्ड

@ काइल, जो जोड़ा जा सकता है ...
nik

3
+1 के लिएcurl http://myip.dnsomatic.com
जाट

इसी तरह, वहाँ भी हैcurl ifconfig.me
jwbensley

19

/bin/hostname -i


3
इस मामले में मैं उपयोग करने का सुझाव दूंगा hostname --all-ip-addresses। होस्ट के सभी नेटवर्क पते प्रदर्शित करें। यह विकल्प सभी नेटवर्क इंटरफेस पर सभी कॉन्फ़िगर किए गए पतों की गणना करता है। लूपबैक इंटरफ़ेस और IPv6 लिंक-स्थानीय पते छोड़ दिए गए हैं। विकल्प -i के विपरीत, यह विकल्प नाम समाधान पर निर्भर नहीं करता है। आउटपुट के आदेश के बारे में कोई धारणा न बनाएं।
lrkwz

5
@ Lrkwz की टिप्पणी के लिए कम विकल्प/bin/hostname -I
hanxue

धन्यवाद @hanxue - यह अपने आप में एक जवाब होना चाहिए - सबसे स्वच्छ आउटपुट के साथ सबसे छोटी कमांड - बस मैं जो खोज रहा था! मेरे अनुभव (उबंटू) में, /bin/hostname -iबस देता है 127.0.1.1, जो बेकार है।
रोजर ड्यूक


9
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'

यदि आपको अपने आंतरिक एड्रेस की जरूरत है तो ifconfig के बाद अपने इंटरफेस को जोड़ दें, जैसे

 /sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'

+1, यह वही है जो मुझे एक समस्या को हल करने के लिए आवश्यक था। एक-लाइनर्स के लिए हुर्रे!
जे। पोलफर

+1 बिना सिर -1: / sbin / ifconfig | grep inet | sed 's / \: / /' | awk 'NR == 1 {प्रिंट $ 3}'
joeslice

धन्यवाद, यह डेबियन पर काम करता है, लेकिन ओएस एक्स पर यह काम नहीं करता है, कुछ कचरा लौटाता है। यह बहुत अच्छा होगा यदि हम दोनों पर काम करने वाली एक पंक्ति के साथ आ सकते हैं। यहाँ OS X पर ifconfig का आउटपुट है: gist.github.com/ssbarnea/5814657
sorin


3

यदि आपको यह पता लगाने की आवश्यकता है कि आपके राउटर का आईपी पता क्या है, तो आप इस कमांड को चला सकते हैं।

खुदाई + लघु myip.opendns.com @ 208.67.222.222 @ 208.67.220.220

यदि आप अपने dns सर्वर के लिए OpenDNS का उपयोग कर रहे हैं, तो आप इसे छोटा कर सकते हैं:

खुदाई + लघु myip.opendns.com

आप इस कमांड का उपयोग भी कर सकते हैं।

कर्ल http://myip.dnsomatic.com

3

यदि आपके पास कई इंटरफेस हैं, तो यह निर्दिष्ट करने के लिए उपयोगी हो सकता है कि आपको कौन सा आईपी चाहिए। यदि आप इंटरफ़ेस 0 eth0 ’का IPV4 पता चाहते हैं:

ip addr show dev eth0 | grep "inet " | awk '{ print $2 }' 

यदि आप इंटरफ़ेस 0 eth0 ’का IPV6 पता चाहते हैं:

ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }' 

यदि आप एक लैपटॉप के दो सामान्य इंटरफेस, wlan0 और eth0 के बीच एक आईपी खोजना चाहते हैं:

CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
    if [ -z $CURRENT_IP ]; then
        CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
    fi
done


2

यहाँ एक लाइन है जो लिनक्स और OS X पर भी काम करती है, और यह पहला पता लौटाएगा जो स्थानीय नहीं है:

ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'

Https://stackoverflow.com/a/13322549/99834 पर क्रेडिट भेजें



1

इसके बारे में जाने का सबसे सरल तरीका शायद है

ifconfig eth0

मशीन को डिफ़ॉल्ट वायर्ड इंटरफ़ेस पर एक एकल आईपी पता है - आपको आवश्यकता हो सकती है

ifconfig wlan0

अगर यह वाईफाई पर है।


1
ip address show scope link

यह आपको रहने का आईपी पता दिखाएगा - लिंक है - इंटरफेस। लेकिन यह बैश कमांड नहीं है। बैश में आईपी और नेटवर्क के बारे में जानने की क्षमता नहीं है।


1

मैं समझता हूं कि आप एक दूरस्थ ubuntu मशीन से कनेक्ट करना चाहते हैं जिसमें डायनेमिक आईपी है। Dyndns.org साइट पर जाएं और एक मुफ्त खाता खोलें। फिर रिमोट मशीन पर आपको एक गतिशील आईपी उपकरण स्थापित करना होगा।

sudo aptitude install dyndns-client

तो आप के माध्यम से दूरस्थ मशीन ssh कर सकते हैं

ssh username@yourdynamicnamealias.dyndns.org

इसलिए कॉन्फ़िगरेशन के बाद आपको दूरस्थ मशीन आईपी पते की आवश्यकता नहीं होगी।


गतिशील आईपी से निपटने के लिए यह मेरा पसंदीदा तरीका है। dyndns.org एक शानदार, मुफ्त सेवा है।
जॉन बैरेट

1

यहाँ मैं उपयोग कर रहा हूँ:

LC_ALL=C /sbin/ifconfig | awk '
    /inet addr/ {
        gsub("addr:","");
        if(($2!="127.0.0.1") && ($2!="0.0.0.0") && ($2!=""))
            { print $2 };
    }'

1

यदि आपको दिए गए इंटरफ़ेस का सिर्फ एक आईपी चाहिए तो आप यह कर सकते हैं:

ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2);  print $2 }' 


0

यदि आप बॉक्स के सार्वजनिक आईपी पते की तलाश कर रहे हैं , तो आप निम्नलिखित का उपयोग कर सकते हैं:

  • dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"

आप dig(1)जैसे विकल्प का उपयोग कर सकते हैं -4या -6विशेष रूप से IPv4 या IPv6 पते की तलाश कर सकते हैं; Google एक TXTप्रकार के रिकॉर्ड में एक उत्तर प्रदान करेगा , जिसके द्वारा प्रस्तुत किए जाने पर इसके चारों ओर उद्धरण होंगे dig; यदि आप बाद में उपयोगिताओं जैसे चर का उपयोग करना चाहते हैं traceroute, तो आप उक्त उद्धरणों को हटाने के लिए tr (1) जैसी किसी चीज़ का उपयोग करेंगे ।

अन्य विकल्पों में शामिल हैं whoami.akamai.netऔर myip.opendns.com, जो ( Google से उपरोक्त उदाहरण के बजाय) रिकॉर्ड Aऔर AAAAरिकॉर्ड TXTकरते हैं, इसलिए, उन्हें उद्धरणों की आवश्यकता नहीं है:

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

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

  • dig -6 @resolver1.opendns.com -t any myip.opendns.com +short

यहां एक नमूना स्क्रिप्ट है जो चर सेट करने के लिए उपरोक्त सभी विकल्पों का उपयोग करता है:

#!/bin/sh
IPANY="$(dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"

यदि आप एक निजी IP पता के लिए देख रहे हैं, या बॉक्स करने के लिए आवंटित सभी IP पतों का एक सेट के लिए, आप में से कुछ संयोजन इस्तेमाल कर सकते हैं ifconfig, (BSD और जीएनयू / लिनक्स पर) ip addr(जीएनयू / लिनक्स पर), hostname(विकल्प -iऔर -Iपर GNU / Linux) और netstatयह देखने के लिए कि क्या चल रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.