私のパブリックIPを決定するコマンド?

google]1で確認すると、自分のパブリックIPが表示されています。Ubuntuのコマンドラインで同じ答えが得られるものはありますか?

ソリューション

ルーターの後ろにいない場合は、ifconfigで調べることができます。

ルーターの後ろにいる場合は、ルーターがネットワークアドレス変換を行うため、あなたのコンピューターはパブリックIPアドレスを知ることができません。 curlwget`を使って、どこかのウェブサイトにパブリックIPアドレスを聞いて、そこから必要な情報を引き出すことができます。


curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/
解説 (16)

外部IPを見つけるには、外部のWebベースのサービスを利用するか、システムベースの方法を利用することができます。より簡単なのは外部サービスを利用することですが、「ifconfig」ベースのソリューションは、「NAT」の後ろにいない場合に限り、あなたのシステムで動作します。

外部サービスを使って外部IPを見つける

最も簡単な方法は、コマンドラインのブラウザやダウンロードツールを使って外部サービスを利用することです。Ubuntuではwgetがデフォルトで利用可能なので、これを利用することができます。
自分のIPを見つけるには、次のように使います。

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

Courtesy:

また、上記のコマンドに若干の変更を加えて、wgetの代わりにlynx(ブラウザ)やcurlを使用して、外部IPを検索することもできます。

curl`を使ってipを見つける。

$ curl https://ipecho.net/plain

より良いフォーマットの出力のためには

$ curl https://ipecho.net/plain ; echo

より速い(間違いなく最も速い)方法は、dig を使用し、OpenDNS をリゾルバとして使用します。

ここでの他の回答はすべてHTTPでリモートサーバーに接続します。その中には その中には、出力の解析が必要なものや、User-Agentヘッダに依存して に依存しているものがあります。また、これらは頻繁に変更されます。 頻繁に変更されています(ダウンしたり、名前を変えたり、広告を出したり、出力形式を変更したり 出力形式の変更など)。)

1.DNS応答プロトコルが標準化されている(フォーマットの互換性が保たれる)。 2.歴史的にDNSサービス(OpenDNS、Google Public DNSなど)は長く存続する傾向にあり、安定性、拡張性、一般的な評価が高い。 2.歴史的にDNSサービス(OpenDNS、Google Public DNSなど)は長く存続する傾向があり、安定性、拡張性、一般的な評価が高いです。 3. (ミクロな最適化を気にするギークのために)この方法は本質的に高速でなければなりません(それが数マイクロ秒であっても)。

digをOpenDNSでリゾルバとして使う。 となります。 となっています。

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

111.222.333.444

Copied from: https://unix.stackexchange.com/a/81699/14497

外部サービスに頼らない外部IPの検索

  • ネットワークインターフェース名がわかっている場合)

ターミナルに以下のように入力します。

$ LANG=c ifconfig  | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'

上記のうち、`を実際のインターフェイス名に置き換えてください(例:eth0,eth1,pp0` など)。

使用例:

$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
  • **ネットワークインターフェイス名がわからない場合***。

ターミナルに次のように入力してください(これは、システム内のすべてのネットワークインターフェースの名前とIPアドレスを取得します)。

$ 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: 出力結果は参考値であり、実際とは異なります。

Courtesy: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/

[1]: https://hawknotes.blogspot.in/2010/06/finding-your-external-ip-address.html

アップデイト

  1. LANG=cifconfig ベースの使用法に追加され、ロケール設定にかかわらず、常に英語の出力が得られるようになりました。
解説 (10)

私が使っているのは、:

wget -O - -q icanhazip.com

はい、ipを持つことができます。)

解説 (1)