自分のグローバルIPアドレス・プライベートIPアドレスを確認するコマンド色々

自分のパソコンのグローバルIPアドレス(パブリックIP)、プライベートIPアドレス(ローカルIP)をコマンドで確認する方法について説明しています。環境はmacOS、CentOS7、Ubuntu 22.04 LTS、ec2(amazon Linux2)です。

目的と動作環境

最終更新日:2022/8/13

自分のPCのIPアドレスを確認できるコマンドについてまとめています。確認するIPアドレスは、グローバルIP(パブリックIP)とプライベートIP(ローカルIP)の両方です。

・OS環境はこの4つで試しています。
OS:macOS Big Sur(バージョン11.6)、CentOS7.9、Ubuntu 22.04 LTS、Amazon Linux 2

グローバルIPアドレス(パブリックIPアドレス)をコマンドで確認する

グローバルIPアドレスをコマンドで確認したい場合、グローバルIPを返してくれるサイトにcurlで問い合わせれば取得できます。ですので、グローバルIPをコマンドで確認したい場合は、OS環境は関係ありません。

グローバルIPを返してくれるサイトは、例えば、ipecho.net/plain、ifconfig.io、ipinfo.ioなどがあります(2021/11/20時点)。

実際に試した例です。

$ curl ifconfig.io
128.43.***.***

$ curl ipecho.net/plain
128.43.***.***
また、ipinfo.ioはデータをJSONで返してきます。
$ curl ipinfo.io
{
  "ip": "128.43.***.***",
  "hostname": "***.***.net",
  "city": "Tokyo",
  "region": "Tokyo",
  "country": "JP",
  "loc": "3*.****,13*.****",
  "org": "*** Corp.",
  "postal": "1**-****",
  "timezone": "Asia/Tokyo",
  "readme": "https://ipinfo.io/missingauth"
}
ですので、JSONデータをjqに渡してIPアドレスだけを出力するように整形してあげるのが良いと思います。
(*jqが入っていない場合、yum(CentOS)、apt(Ubuntu)、brew(MacOS)でインストールしましょう)
$ curl -s ipinfo.io | jq -r '.ip'
128.43.***.***

curlの-s(--silent)オプションはサイレントモードです。curlの取得結果を処理するためにパイプで別のコマンドに渡したい場合、通信時間の進捗データやエラーメッセージが出力される事がありますが、その情報が不必要で非表示にしたい時に使ったりします。

CentOS7、Ubuntu 22.04 LTS、Amazon Linux2でプライベートIPアドレス(ローカルIPアドレス)をコマンドで確認する

CentOS7環境でプライベートIPアドレス(ローカルIP)をコマンドで確認したい場合についてです。macOS環境の場合は、こちらの方を参考にしてください。

CentOSでプライベートIPを確認できるコマンドはいくつかあります。
まずは、ipコマンドです。

$ ip a
〜
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.44.10/24 brd 192.168.44.255 scope global noprefixroute eth1
〜
次に、hostnameコマンドです。
$ hostname -I
10.0.2.15 192.168.44.10 

次に、nmcliコマンドです(nmcliはUbuntu22.04,amazon Linux2には入っていませんでした)。

$ nmcli
〜
eth1: 接続済み to System eth1
〜
        inet4 192.168.44.10/24
        route4 192.168.44.0/24
〜
ちなみにnmcliコマンドは、ネットワークのインタフェース一覧表示だけでなく、その接続状況やIPアドレスの設定や接続設定などでも使えるコマンドです。

macOSでプライベートIPアドレス(ローカルIPアドレス)をコマンドで確認する

macOS環境でプライベートIPアドレス(ローカルIP)をコマンドで確認したい場合についてです。CentOS7環境の場合は、こちらの方を参考にしてください。

macOSでプライベートIPを確認できるコマンドもいくつかあります。
まずは、ifconfigコマンドです。ifconfigだけだと多くのネットワークインタフェースの情報が表示されるので、inetというワードでgrepします。

$ ifconfig | grep inet
〜
	inet 192.168.11.4 netmask 0xffffff00 broadcast 192.168.11.255
〜
次に、ipconfigコマンドです。
$ ipconfig getifaddr en0
192.168.11.4
(*en0はインタフェース名です。複数あれば、en1、en2と続いていくと思います。)

次に、networksetupコマンドです。

$ networksetup -getinfo Wi-Fi
DHCP Configuration
IP address: 192.168.11.4
Subnet mask: 255.255.255.0
Router: 192.168.11.1
Client ID: 
IPv6: Automatic
IPv6 IP address: none
IPv6 Router: none
Wi-Fi ID: **:**:**:**:**:**
(*Wi-Fiはネットワーク名です。networksetupコマンドはルータのIPアドレスの情報もわかります。)

ちなみに、macOSで画面(GUI)でプライベートIPアドレスやネットワーク名を確認したい場合、「システム環境設定」->「ネットワーク」を選択して、対象のネットワークを選択したら、詳細ボタンを押します。
macOSでプライベートIPアドレスやネットワーク名を確認する

すると、選択したネットワークの詳細ウインドウが開くので、TCP/IPタブを選択すると使っているパソコンのプライベートIP(ローカルIP)がわかります。
macOSでプライベートIPアドレスやネットワーク名を確認する