ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
外部 IP とは
外部 IP (グローバル IP) は、インターネットから見た自分の IP アドレス。NAT 配下のサーバでは、ip a で見えるローカル IP (例: 192.168.1.10) と、外部から見える IP (例: 203.0.113.42) が異なります。
| コマンド | 何が見える? |
|---|---|
ip a / ifconfig | NIC に振られたローカル IP |
hostname -I | 同じくローカル IP のスペース区切り |
curl ifconfig.me | ★ 外部 (グローバル) IP |
HTTP ベースの確認サービス
# 定番 (どれも text/plain で IP だけ返す)
curl ifconfig.me
curl ipinfo.io/ip
curl ifconfig.co
curl https://api.ipify.org
curl https://ipecho.net/plain
curl https://icanhazip.com
curl https://checkip.amazonaws.com # AWS 公式
# IPv4 / IPv6 を明示
curl -4 ifconfig.me # IPv4 のみ
curl -6 ifconfig.me # IPv6 のみ
# JSON 形式で詳細情報
curl ipinfo.io
# {
# "ip": "203.0.113.42",
# "city": "Tokyo",
# "country": "JP",
# "org": "AS17676 SOFTBANK CORP."
# }
curl https://ipapi.co/json/
DNS ベースの確認 (推奨)
HTTP より高速・軽量で、Web サービスがブロックされる環境でも動きやすい:
# OpenDNS の resolver に "myip" を問い合わせる
dig +short myip.opendns.com @resolver1.opendns.com
# 203.0.113.42
# Google Public DNS の場合
dig +short TXT o-o.myaddr.l.google.com @ns1.google.com
# "203.0.113.42"
# Cloudflare DNS (1.1.1.1)
dig +short txt ch whoami.cloudflare @1.0.0.1
# IPv6 を確認
dig -6 +short AAAA myip.opendns.com @resolver1.ipv6-sandbox.opendns.com
# host コマンドでも可
host myip.opendns.com resolver1.opendns.com
wget での確認
curl が入っていない最小構成では wget で代替:
wget -qO- ifconfig.me
wget -qO- icanhazip.com
wget -qO- https://api.ipify.org
# -q : quiet
# -O- : 標準出力に書く
スクリプトに組み込む
本番運用では 1 つのサービスが落ちても OK な多段フォールバック:
#!/bin/bash
# get-external-ip.sh
get_ip() {
local services=(
"https://api.ipify.org"
"https://ifconfig.me"
"https://ipinfo.io/ip"
"https://icanhazip.com"
"https://checkip.amazonaws.com"
)
for url in "${services[@]}"; do
ip=$(curl -s --max-time 3 "$url")
# IPv4 形式バリデーション
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
echo "$ip"
return 0
fi
done
# DNS フォールバック
dig +short myip.opendns.com @resolver1.opendns.com
}
EXTERNAL_IP=$(get_ip)
echo "External IP: $EXTERNAL_IP"
各方法の比較
| 方法 | 速度 | 信頼性 | 備考 |
|---|---|---|---|
dig +short myip.opendns.com @resolver1.opendns.com | ★★★ | ★★★ | ★ 推奨 |
curl ifconfig.me | ★★ | ★★ | シンプル |
curl ipinfo.io/ip | ★★ | ★★★ | レート制限あり (無料 1k/日) |
curl checkip.amazonaws.com | ★★ | ★★★ | AWS 公式、安定 |
curl api.ipify.org | ★★ | ★★★ | 軽量、SSL 対応 |
NAT 越え検証
# ローカル IP (NIC に振られている)
ip -4 addr show eth0 | awk '/inet / {print $2}'
# 192.168.1.10/24
# 外部から見える IP
curl -s ifconfig.me
# 203.0.113.42
# 一致するなら NAT なし (直接インターネット接続 / クラウド EIP)
# 一致しないなら NAT 配下 (家庭 LAN, AWS NAT GW etc.)
IPv6 の確認
# IPv6 グローバルアドレス
ip -6 addr show scope global
# inet6 2001:db8::abcd:1234/64 scope global
# 外部 IPv6
curl -6 https://ifconfig.me
curl -6 https://api64.ipify.org
# IPv4 / IPv6 両方を一括取得
echo "IPv4: $(curl -4 -s ifconfig.me)"
echo "IPv6: $(curl -6 -s ifconfig.me 2>/dev/null || echo 'なし')"
cron で定期的に監視
# /etc/cron.d/external-ip-watch
# 10 分ごとに外部 IP を記録、変化したら通知
*/10 * * * * root /usr/local/bin/check-ip.sh
# check-ip.sh
#!/bin/bash
CURRENT=$(curl -s --max-time 5 ifconfig.me)
LAST=$(cat /var/lib/external-ip 2>/dev/null)
if [ "$CURRENT" != "$LAST" ] && [ -n "$CURRENT" ]; then
echo "$CURRENT" > /var/lib/external-ip
logger -t ip-watch "External IP changed: $LAST -> $CURRENT"
# Slack 通知など
fi
FAQ
Q: ip a で見えるのが外部 IP か確かめたい
A: curl ifconfig.me の結果と比較。一致すればクラウドや専用線で直接インターネット接続、不一致なら NAT 配下です。
Q: 社内プロキシ経由でも動く?
A: http_proxy / https_proxy 環境変数を設定すれば curl が利用します。返るのはプロキシの外向き IP。
Q: 全部のサービスが落ちている
A: DNS ベースの dig +short myip.opendns.com @resolver1.opendns.com を試してください。HTTP より生存率が高いです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- クラス
- グローバルIPアドレス
- プライベートIPアドレス
- 内部IPアドレスの確認方法(Linux)
- 外部IPアドレスの確認方法(Linux)
- IP制限をかける方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?