ルーターの後ろにいない場合は、ifconfig
で調べることができます。
ルーターの後ろにいる場合は、ルーターがネットワークアドレス変換を行うため、あなたのコンピューターはパブリックIPアドレスを知ることができません。 curlや
wget`を使って、どこかのウェブサイトにパブリックIPアドレスを聞いて、そこから必要な情報を引き出すことができます。
curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
またはもっと短い
curl https://ipinfo.io/ip
外部IPを見つけるには、外部のWebベースのサービスを利用するか、システムベースの方法を利用することができます。より簡単なのは外部サービスを利用することですが、「ifconfig」ベースのソリューションは、「NAT」の後ろにいない場合に限り、あなたのシステムで動作します。
最も簡単な方法は、コマンドラインのブラウザやダウンロードツールを使って外部サービスを利用することです。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
ターミナルに以下のように入力します。
$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
上記のうち、<interface_name>
を実際のインターフェイス名に置き換えてください(例: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
アップデイト
LANG=c
が ifconfig
ベースの使用法に追加され、ロケール設定にかかわらず、常に英語の出力が得られるようになりました。