マシンの外向きのIPアドレスを表示するコマンドラインの方法はありますか?
Whatismyip.comなどを呼び出して、興味深い部分を返すスクリプトをまとめることができます(ただし、そのようなWebサイトではそうすることを好まない場合があります)。あなたのコンピュータは知らないので、一般的に、あなたは他の誰か(他のコンピュータ)にあなたのIPが何であるかを尋ねなければならないでしょう。ルーターに問い合わせることもできますが、解析はおそらく難しくなります。
ルーターがNAT *を使用しているため、コンピューターは外部IPアドレスを認識していません。コンピュータを離れるパケットはfrom:[内部IP]を持っていますが、ルーターはそれをfrom:[ルーターの外部IP]にマングルし、インターネットに送信します。次に、ルーターは、返されたパケットのto:フィールドをアンマングル(またはリマングル)して、コンピューターに転送します。**
以下からほぼクリーンな出力を得ることができます。
wget -q -O - checkip.dyndns.org
*ネットワークアドレス変換。
**これは、NATがどのように機能するかについての手振りの説明にすぎません。
checkip.dyndns.org のように、世界中のさまざまなWebサイトから入手できます。 IPアドレスを教えてくれるサイトができたら、curlを使用してページをフェッチし、awkを使用してページを解析するのはそれほど難しくありません。
curl http://checkip.dyndns.org/ 2> /dev/null | Ruby -pe '$_=$_.scan(/\d+\.\d+\.\d+\.\d+/)'
ifconfig.me には、いくつかの優れたcmd行オプションがあります。
これはあなたのIPを返します
curl ifconfig.me/ip
これは大量の情報を返します
curl ifconfig.me/all