командная консоль для получения ip-адреса?

<p>есть ли команда bash, чтобы найти ip-адрес для ubuntu? мне нужно найти ip-адрес, чтобы я мог ssh в машину позже.</p>

<p><code>/sbin/ifconfig -a</code></p>

<p>ты можешь использовать:</p><pre><code>/bin/ip addr </code></pre>

<p>если у вас есть внутренний адрес, проверьте</p><pre><code>curl http://myip.dnsomatic.com </code></pre><p>может быть хорошей идеей для оболочек unix.<br> или просто вставьте этот url в свой браузер.</p><hr><p>если вы получили другой ответ от "<code>ifconfig -a</code> "результат,<br> <code>ifconfig</code> дал ваш внутренний адрес, который, вероятно, не будет работать извне.</p><hr><p>даже если все выглядит нормально, у вас может быть установлен брандмауэр, который запрещает входящие <strong>ssh</strong> подключения.<br> в этот момент вы должны попробовать порт интереса из браузера на машине,</p><pre><code>http://www.canyouseeme.org/ </code></pre><p>это подтвердит подключение через,</p><ul> <li>внешний ip-адрес (показывает его вам на этой странице)</li> <li>nat, портовые форварды</li> <li>брандмауэры</li> </ul>

<p><code>/bin/hostname -i</code></p>

<pre><code> curl icanhazip.com </code></pre><p>хи хи!</p><p><em> от <a href="http://www.commandlinefu.com/commands/view/2966/return-external-ip">http://www.commandlinefu.com/commands/view/2966/return-external-ip</a> </em></p>

<pre><code>/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}' если вам нужен ваш внутренний адрес, добавьте ваш интерфейс после ifconfig, например,. /sbin/ifconfig eth0|grep inet|head -1|sed 's/:/ /'|awk '{print $3}' </code></pre>

<p>если вы находитесь за nat и вам нужен публичный ip, используйте это:</p><p>wget -q -o - checkip.dyndns.org | sed -e 's /.<em> текущий ip-адрес: //' -e 's /<.</em> $ //"взяты из: <a href="http://www.go2linux.org/what-is-my-public-ip-address-with-linux">http://www.go2linux.org/what-is-my-public-ip-address-with-linux 

если у вас есть несколько интерфейсов, может быть полезно указать, какой из них вы хотите ip. если вы хотите ipv4-адрес интерфейса 'eth0':ip addr show dev eth0 | grep "inet " | awk '{ print $2 }' </code></pre><p>если вы хотите ipv6-адрес интерфейса 'eth0':</p><pre><code>ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }' если вы хотите искать ip между двумя общими интерфейсами ноутбука, 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 

если вам необходимо выяснить, какой ip-адрес у вашего роутера, вы можете запустить эту команду.dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220если вы используете opendns для вашего dns-сервера, вы можете сократить его до:копай + коротко myip.opendns.comвы также можете использовать эту команду.локон http://myip.dnsomatic.com

просто сверните это <a href="http://wtfismyip.com/text">страница :$ curl wtfismyip.com/text</code></p>

<pre><code>local\_ip=`/bin/hostname -i | sed 's/ //g'` </code></pre>

<p>вот одна строка, которая работает также в linux и os x и возвращает первый адрес, который не является локальным:</p><pre><code>ifconfig | sed -en 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' </code></pre><p>отправьте кредиты на <a href="https://stackoverflow.com/a/13322549/99834">https://stackoverflow.com/a/13322549/99834</a> </p>

<p>самый простой способ сделать это, вероятно,</p><pre><code>ifconfig eth0 </code></pre><p>при условии, что у машины есть один ip-адрес в проводном интерфейсе по умолчанию - вам может понадобиться</p><pre><code>ifconfig wlan0 </code></pre><p>если это по wifi.</p>

<pre><code>ip address show scope link </code></pre><p>он покажет вам ip-адрес живых - имеет ссылки - интерфейсы. но это не команда bash. bash вообще не может знать об ip и сети.</p>

<p>я понимаю, что вы хотите подключить удаленную машину с ubuntu, которая имеет динамический ip-адрес. зайдите на сайт dyndns.org и откройте бесплатный аккаунт. затем на удаленной машине вам необходимо установить динамический инструмент ip.</p><pre><code>sudo aptitude install dyndns-client </code></pre><p>так что вы можете ssh удаленного компьютера через</p><pre><code>ssh username@yourdynamicnamealias.dyndns.org </code></pre><p>поэтому после настройки вам никогда не понадобится ip-адрес удаленной машины.</p>

<p>вот что я использую:</p><pre><code>lc\_all=c /sbin/ifconfig | awk ' /inet addr/ { gsub("addr:",""); if(($2!="127.0.0.1") && ($2!="0.0.0.0") && ($2!="")) { print $2 }; }' </code></pre>

<p>если вам нужен только один ip-адрес данного интерфейса, вы можете сделать:</p><pre><code>ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2); print $2 }' </code></pre>

<p>если вы ищете <a href="//serverfault.com/a/560059/110020">общедоступный ip-адрес коробки</a> , вы можете использовать следующее:</p><ul> <li>\_<code>dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"</code>\_</li> </ul><p>вы можете использовать <a href="http://mdoc.su/-/dig.1"><code>dig(1)</code></a> опции, такие как \_<code>-4</code>\_ или \_<code>-6</code>\_, чтобы специально искать адрес ipv4 или ipv6; google предоставит ответ в записи типа <code>txt</code>, которая будет заключена в кавычки при представлении <code>dig</code>; если вы хотите впоследствии использовать переменную с такими утилитами, как <code>traceroute</code>, вы должны использовать что-то вроде <a href="http://mdoc.su/-/tr.1">tr (1)</a> для удаления указанных кавычек.</p><p>другие параметры включают \_<code>whoami.akamai.net</code>\_ и \_<code>myip.opendns.com</code>\_, которые отвечают с записями <code>a</code> и <code>aaaa</code> (вместо <code>txt</code>, как в приведенном выше примере от google), поэтому они не требуют удаления кавычек:</p><ul> <li> <p>\_<code>dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short</code>\_</p> </li> <li> <p>\_<code>dig -4 @resolver1.opendns.com -t any myip.opendns.com +short</code>\_</p> </li> <li>\_<code>dig -6 @resolver1.opendns.com -t any myip.opendns.com +short</code>\_</li> </ul><p>вот пример сценария, который использует все параметры выше для установки переменных:</p><pre>\_<code>#!/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%st%st%sn' "${ipany}" "${googv4}" "${googv6}" printf '$akam:t%sn$csco:\t%s\t%s\n' "${akamv4}" "${cscov4}" "${cscov6}" </code>\_</pre><hr><p>если вы ищете частный ip-адрес или набор всех ip-адресов, назначенных блоку, вы можете использовать некоторую комбинацию <a href="http://mdoc.su/-/ifconfig.8"><code>ifconfig</code></a> (в bsd и gnu/linux ), \_<code>ip addr</code>\_ (в gnu/linux), <a href="http://mdoc.su/-/hostname.1"><code>hostname</code></a> (параметры \_<code>-i</code>\_ и \_<code>-i</code>\_ в gnu/linux) и <a href="http://mdoc.su/-/netstat.1"><code>netstat</code></a> чтобы увидеть, что происходит.</p>

<p>однажды я сыграл в гольф извлечение ip-адреса в linux:</p><p> <a href="http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/">http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/</a> </p>