結論

グローバルIPは、外のサーバーに「どこから来たか」を聞くと確認できます。PC に表示される 192.168.x.x はプライベートIPで、別物です。

この記事でわかること

  • Windows・Mac・Linux・ルーター別の確認方法5通り
  • NATで送信元が書き換わる様子をtcpdumpで見た実物
  • CGNAT・VPN・プロキシで結果が合わない理由4つ

2026年10月23日更新|ip netns・nftables 1.0.9・curl 8.5.0で実測

家の PC は、ルーターの中だけで通じる「プライベートIP」を持っています。インターネットに出るときにルーターが送信元を自分の「グローバルIP」に書き換える(NAT)ので、外のサーバーにはグローバルIPだけが見えます。

flowchart TD
    A[PC<br>192.168.1.10] -->|送信元 192.168.1.10| R[ルーター NAT<br>WAN 203.0.113.10]
    B[スマホ<br>192.168.1.11] --> R
    R -->|送信元を 203.0.113.10 に書き換え| S[外の確認サーバー]
    S -.->|あなたは 203.0.113.10| A

急いでいる人向けに、よく調べられることの答えを先にまとめます。

知りたいこと 答え 詳しい節
グローバルIPとは インターネットで重ならない、外から見える住所 グローバルIPアドレスとは
いちばん速い確認 curl https://api.ipify.org 確認方法
Windows で確認 curl.exe https://api.ipify.org 確認方法
ipconfig の 192.168.x.x は? プライベートIP。グローバルIPではない PCに表示されるIP
プライベートIPの範囲 10/8・172.16/12・192.168/16 範囲の早見表
確認結果が合わない CGNAT・VPN・プロキシ・二重ルーター 確認できないとき

確認環境:Ubuntu 24.04.4 LTS・Linux カーネル 6.18・iproute2 6.1.0・nftables 1.0.9・conntrack-tools 1.4.8・tcpdump 4.99.4・curl 8.5.0・DiG 9.18.39・traceroute 2.1.5・Python 3.11.15。Linux の network namespace(1台の中に独立したネットワークを作る仕組み)で「家の PC 2台・家のルーター(NAT)・ISP・インターネット側のサーバーとプロキシ」を作り、確認サーバーと DNS サーバーを Python で書いて、送信元の IP が変わる様子を実際に動かして確かめました。グローバルIPの役は、文書用に予約された 203.0.113.0/24・192.0.2.0/24(RFC 5737)のアドレスが務めています。アドレスの範囲は IANA の Special-Purpose Address Registry と RFC 1918・6598・4193・8981、Windows のコマンドと設定は Microsoft Learn・Microsoft サポート、Mac は Apple サポートと ipconfig(8)、確認用のエンドポイントは ipify の公式ページ、IP アドレスの管理体制は JPNIC の資料で確かめました(確認日 2026年10月23日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「グローバルIPの確認方法|コマンド・プライベートIPとの違いとNATを実演」

グローバルIPアドレスとは(意味をたとえで)

この節では、グローバルIPアドレスが何で、なぜ「確認」が必要になるのかが分かります。

グローバルIPアドレスは、インターネット全体で重ならないように割り当てられた、外から見える住所です。 手紙にたとえると、マンションの住所がグローバルIP、部屋番号がプライベートIPです。外から届く手紙はマンションの住所あてに来て、管理人(ルーター)が部屋に配ります。

1世界で1つ

同じグローバルIPを2つの場所で同時に使うことはできない。番号は管理団体から ISP(プロバイダー)を通して配られる。

2家では1つを共有

家庭の回線では、ルーターが受け取った1つのグローバルIPを、家の PC・スマホ・ゲーム機が一緒に使う。

3PC 自身は知らない

グローバルIPを持っているのはルーター。PC に表示されるのはプライベートIPなので、外に聞いて確かめる。

グローバルIPを確認したくなる場面の例です。

  • クラウドのサーバーや社内のシステムに「この IP からだけ接続を許す」設定(IP 制限・許可リスト)を入れる
  • AWS のセキュリティグループで、SSH(22番)の接続元に自分のパブリック IPv4 アドレスを指定する(AWS のドキュメントの例)
  • 自宅のサーバーやネットワークカメラを外から見られるようにする(ポート転送)
  • オンラインゲームや VPN の接続がうまくいかない原因を調べる
  • 回線の業者に問い合わせるときに伝える

IPアドレスの番号はどこから配られるか

JPNIC の資料によると、IP アドレスは階層で管理されています。全世界を IANA が管理し、地域ごとの RIR(アジア太平洋は APNIC)、国ごとの NIR(日本は JPNIC)を通して、IP 指定事業者(ISP など)から利用者に配られます。

段 組織 役割
1 IANA 全世界の IP アドレスを管理
2 RIR(APNIC など) 地域の単位で管理。アジア太平洋は APNIC
3 NIR(JPNIC など) 国の単位で管理。JPNIC は APNIC から委任
4 IP 指定事業者・ISP 利用者(家庭・会社)に割り当てる

IPv4 のアドレスは約43億個しかなく、同じ資料では、IANA の未割り振りの在庫は2011年2月3日にすべて分配を終えたとされています。足りないアドレスを家の中で何台にも使い回すための仕組みが、次の節のプライベートIPと NAT です。

プライベートIPとの違いとNAT(NAPT)の仕組み

この節では、グローバルIPとプライベートIPの違いと、2つをつなぐ NAT が何をしているのかが分かります。

同じ PC の2つの IP

プライベートIP192.168.1.10 など。家や会社の中だけで通じる。ipconfig・ip addr に出る。ほかの家と重なってよい
→
グローバルIP203.0.113.10 など。インターネットで通じる。ルーターが持つ。外のサーバーに聞くと分かる

ルーターの NAT が、外に出るときに前者を後者に書き換える

比べる点 グローバルIP プライベートIP
使える場所 インターネット全体 家・会社などのネットワークの中
重なり 世界で重ならない ほかのネットワークと重なってよい
割り当てる人 ISP(元は IANA・APNIC・JPNIC) ルーター(DHCP)やネットワークの管理者
持っている機器 家庭ではルーターの WAN 側 PC・スマホ・プリンター
確認方法 外のサーバーに聞く・ルーターの画面 ipconfig・ip addr・設定画面
範囲 予約された範囲以外 10/8・172.16/12・192.168/16

NAT(Network Address Translation)は、パケットの送信元や宛先の IP アドレスを書き換える仕組みです。 家庭のルーターは、IP アドレスと一緒にポート番号も書き換える NAPT(IP マスカレードとも呼ばれます)で、1つのグローバルIPを何台もの機器で共有させています。

1

PC が送る

送信元 192.168.1.10・ポート 42674、宛先 192.0.2.80 のパケットを、ルーター(デフォルトゲートウェイ)へ送る。

LAN 側

2

ルーターが書き換える

送信元を自分の WAN 側の IP 203.0.113.10 に書き換え、「どの PC のどのポートか」を変換表(conntrack)に覚える。

NAT

3

サーバーが返す

サーバーには 203.0.113.10 から来たように見えるので、返事も 203.0.113.10 あてに送る。

インターネット

4

ルーターが戻す

変換表を見て、宛先を 192.168.1.10 に戻して PC に届ける。

LAN 側

flowchart TD
    P1[PCが送る<br>送信元 192.168.1.10] --> R1[ルーターが書き換えて記録<br>送信元 203.0.113.10]
    R1 --> S[サーバーが返す<br>宛先 203.0.113.10]
    S --> R2[ルーターが記録を見て戻す<br>宛先 192.168.1.10]
    R2 --> P2[PCが受け取る]

この書き換えを、後の節で実際にパケットを取って確かめます。ルーターがデフォルトゲートウェイとしてどう選ばれるかは、関連記事「デフォルトゲートウェイとは|調べ方・設定・決め方をLinuxで実演」で扱っています。

グローバルIPの確認方法(curl・Windows・Mac・Linux・ルーター)

この節では、自分のグローバルIPを確かめる方法を、OS と道具ごとにコピペで使える形で示します。

どの方法も、やっていることは「外にあるサーバーに接続して、サーバーから見えた送信元の IP を返してもらう」ことです。 ブラウザで開く確認サイトも、コマンドで問い合わせるエンドポイントも、同じ仕組みです。

方法 コマンド・操作 向いている場面
curl(Mac・Linux) curl https://api.ipify.org いちばん速い。スクリプトにも使える
curl(Windows) curl.exe https://api.ipify.org Windows 10 以降の標準のコマンド
PowerShell Invoke-RestMethod https://api.ipify.org Windows で結果を変数に入れる
DNS で問い合わせ dig +short で自分の IP を返す名前を引く HTTP が使えない場面
ルーターの管理画面 WAN 側(インターネット側)の IP を見る CGNAT かどうかも分かる

curl で確認する(Mac・Linux)

ipify の公式ページには、IPv4 だけを返す api.ipify.org、IPv6 だけの api6.ipify.org、両方に対応する api64.ipify.org と、format=json で JSON を返す使い方が載っています。

curl https://api.ipify.org                 # IPv4 のグローバルIPを1行で返す
curl "https://api.ipify.org?format=json"   # {"ip":"..."} の形で返す
curl https://api64.ipify.org               # IPv6 が使える回線なら IPv6 を返す
curl -4 https://api64.ipify.org            # -4 で IPv4 の接続に限る(-6 は IPv6 に限る)
wget -qO- https://api.ipify.org            # curl が無い環境では wget でも同じ

返ってくるのは IP アドレスの文字列だけです。ipify のページによると、format=json を付けると {"ip":"98.207.254.136"} のような JSON になります。同じページには、訪問者の情報を記録しない、回数の制限なく使えると書かれています。確認用のエンドポイントは ipify のほかにも各社が公開しています。会社のネットワークでは、外部の確認サービスへの接続がプロキシで止められていることがあります(後のエラー表)。

Windows で確認する(curl.exe・PowerShell)

Microsoft のブログによると、Windows には Insider Build 17063 から curl と tar が標準で入りました。PowerShell では curl と打つと別のコマンドになるので、.exe まで書きます。 Microsoft Learn には、Windows PowerShell 5.1 では curl・wget・iwr が Invoke-WebRequest の別名(エイリアス)だと書かれています。

# コマンドプロンプトでも PowerShell でも同じ
curl.exe https://api.ipify.org

# PowerShell のコマンドレットで
Invoke-RestMethod https://api.ipify.org
(Invoke-RestMethod "https://api.ipify.org?format=json").ip

Microsoft Learn によると、Invoke-RestMethod は応答が文字列ならそのまま文字列を返し、JSON なら PSObject に変換します。そのため2行目は IP の文字列、3行目は JSON の ip の値を取り出して表示します。別名は irm です。

DNS で確認する(nslookup・dig)

DNS サーバーの中には、問い合わせてきた相手の IP アドレスを答えとして返すものがあります。 有名なのは OpenDNS の myip.opendns.com を OpenDNS のサーバー(resolver1.opendns.com)に直接問い合わせる方法です。

dig +short myip.opendns.com @resolver1.opendns.com        # Mac・Linux
nslookup myip.opendns.com resolver1.opendns.com           # Windows・Mac・Linux

注意が1つあります。ふだん使っている DNS サーバー(ルーターやプロバイダーの DNS)経由で問い合わせると、返るのは「DNS サーバーの出口の IP」になることがあります。 Cisco Umbrella のサポート文書は、nslookup -type=txt debug.opendns.com の答えの source の行を「要求を送った DNS サーバーの出口の IP アドレス」と説明しています。自分の IP を知りたいときは、上のように @サーバー名 で直接問い合わせます。

この仕組みを、問い合わせてきた相手の IP を A レコードで返す小さな DNS サーバー(Python の標準ライブラリだけで書いたもの)を立てて確かめました。家の PC(192.168.1.10)から問い合わせた結果です。

dig @192.0.2.53 -p 37153 myip.test
; <<>> DiG 9.18.39-0ubuntu0.24.04.7-Ubuntu <<>> @192.0.2.53 -p 37153 myip.test
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55886
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;myip.test.         IN  A

;; ANSWER SECTION:
myip.test.      0   IN  A   203.0.113.10

PC 自身は 192.168.1.10 なのに、DNS サーバーは NAT の後の 203.0.113.10 を答えました。 サーバーのログにも [dns] 受けた送信元 203.0.113.10:46116 と出ています。答えの TTL を0にしてあるのは、キャッシュされずに毎回問い合わせが届くようにするためです。

ルーターの管理画面で確認する

ルーターの管理画面(ブラウザで 192.168.1.1 や 192.168.0.1 などを開く。アドレスとログイン方法は機種の説明書に書かれています)の「状態」「ステータス」「WAN」「インターネット」などの画面に、ルーターがプロバイダーから受け取った IP アドレスが表示されます。

ルーターの画面の値と、curl などで確かめた値が同じなら、ルーターがグローバルIPを直接持っています。違うときは、ルーターの外にもう一段 NAT があります。 この見分け方は、後の節「確認できないとき」で実物を使って説明します。

スマホで確認する

スマホのブラウザで確認サイトを開くと、そのときつながっている回線のグローバルIPが表示されます。Wi-Fi のときは家のルーターのグローバルIP、モバイル回線(4G・5G)のときは携帯会社のグローバルIPです。 同じスマホでも、Wi-Fi を切ると値が変わります。

どの方法を使うか

flowchart TD
    A{一度見るだけ?} -->|はい| B[確認サイト<br>かcurl]
    A -->|いいえ| C{CGNATか<br>調べる?}
    C -->|はい| D[WAN側と<br>curlを比べる]
    C -->|いいえ| E[curl・irmを<br>スクリプトで]

PCに表示されるIPとの違い(プライベートIPの確認方法)

この節では、PC やスマホの設定画面・コマンドに表示される IP がどれで、グローバルIPとどう違うのかが分かります。

ipconfig や「設定」に表示される 192.168.x.x・10.x.x.x・172.16〜31.x.x は、プライベートIPです。 グローバルIPを調べるつもりでこの値を IP 制限に登録しても、外からの接続元とは一致しません。

OS PC 自身の IP(プライベートIP)を見る方法
Windows(コマンド) ipconfig の「IPv4 アドレス」、Get-NetIPAddress -AddressFamily IPv4
Windows(設定) 設定 → ネットワーク & インターネット → Wi-Fi(またはイーサネット)→ 接続中のネットワーク →「IPv4 アドレス」
Mac(コマンド) ipconfig getifaddr en0(en0 は多くの機種の Wi-Fi)
Mac(設定) システム設定 → ネットワーク → 使用中のサービス →「詳細」→「TCP/IP」
Linux ip -4 addr、ip -br -4 addr、hostname -I
iPhone・Android Wi-Fi の設定で、つないでいるネットワークの詳細を開く

Microsoft Learn では、ipconfig は「現在のすべての TCP/IP ネットワーク構成値を表示」するコマンドで、/all を付けるとすべてのアダプターの完全な構成を表示します。Mac の ipconfig(8) では、getifaddr は指定したインターフェイスの IP アドレスを表示し、使っていなければ何も出ません。

実験の家の PC(Linux)で見たときの表示です。

$ ip -4 addr show eth0
2: eth0@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netns s371-rt
    inet 192.168.1.10/24 scope global eth0
       valid_lft forever preferred_lft forever

$ ip route
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10

$ hostname -I
192.168.1.10

Linux の scope global は「このホストの外とも使える」という意味で、グローバルIPという意味ではありません。 192.168.1.10 にも scope global と付いています。

2つを同時に表示する Python のコード

PC 自身の IP と、外から見た IP を並べて表示するコードです。1つ目は、UDP のソケットを外の宛先に connect して、OS が選んだ送信元のアドレスを読みます(UDP は connect しただけでは何も送りません)。2つ目は確認用のエンドポイントに問い合わせます。

"""自分の PC の IP(プライベート)と、外から見た IP(グローバル)を両方表示する"""
import socket, urllib.request

CHECK_URL = "http://192.0.2.80:37180/"      # 確認用のエンドポイント(記事の実験用)

# 1) PC 自身の IP:外へ出るときに使うインターフェイスのアドレスを OS に選ばせる(UDP は connect しても送信しない)
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
    s.connect(("192.0.2.80", 80))
    print("PC 自身の IP     :", s.getsockname()[0])

# 2) 外から見た IP:確認用のエンドポイントに問い合わせる
opener = urllib.request.build_opener(urllib.request.ProxyHandler({}))
with opener.open(CHECK_URL, timeout=5) as r:
    print("外から見た IP    :", r.read().decode().strip())
PC 自身の IP     : 192.168.1.10
外から見た IP    : 203.0.113.10

本物の回線で使うときは、CHECK_URL を https://api.ipify.org に、connect の宛先を外のアドレスに変えます。ソケットの connect と送信元のアドレスの関係は、関連記事「ソケットとは|TCPとUDPの違いをPythonの通信とtcpdumpで解説」で扱っています。

NATで送信元が変わる様子を実物で見る(ip netns)

この節では、NAT の内側から見た送信元と、外のサーバーが受け取った送信元が本当に違うことを、パケットと変換表で確かめます。

Linux の network namespace で、次のネットワークを1台の中に作りました。家のルーターの NAT は nftables の masquerade(出ていくインターフェイスの IP に書き換える設定)です。

flowchart TD
    P[家のPC2台<br>192.168.1.10と.11] --> R[家のルーター NAT<br>WAN 203.0.113.10]
    R --> I[ISP<br>203.0.113.1]
    I --> S[確認サーバー<br>192.0.2.80]
    I --> X[プロキシ<br>192.0.2.8]
# 名前空間を作る(PC・ルーター・ISP・サーバー・プロキシ)
ip netns add s371-pc1; ip netns add s371-rt   # ほかも同じ
# ルーターの中だけで転送と NAT を有効にする(ホストの設定は変わらない)
ip netns exec s371-rt sysctl -w net.ipv4.ip_forward=1
ip netns exec s371-rt nft -f - <<'EOF'
table ip homenat {
  chain postrouting {
    type nat hook postrouting priority srcnat; policy accept;
    oifname "wan" counter masquerade
  }
}
EOF

確認サーバーは、接続してきた相手のアドレスを返すだけの HTTP サーバーです(Python の標準ライブラリ)。

"""接続してきた相手の IP アドレス(サーバーから見た送信元)を返すだけの HTTP サーバー"""
import json, sys
from http.server import ThreadingHTTPServer, BaseHTTPRequestHandler

class H(BaseHTTPRequestHandler):
    def do_GET(self):
        ip, port = self.client_address[0], self.client_address[1]
        xff = self.headers.get("X-Forwarded-For")
        if self.path.startswith("/json"):
            body = json.dumps({"ip": ip, "port": port, "x_forwarded_for": xff}) + "\n"
            ctype = "application/json"
        else:
            body = ip + "\n"
            ctype = "text/plain; charset=utf-8"
        b = body.encode()
        self.send_response(200)
        self.send_header("Content-Type", ctype)
        self.send_header("Content-Length", str(len(b)))
        self.end_headers()
        self.wfile.write(b)
    def log_message(self, fmt, *a):
        sys.stderr.write(f"[checkip] 受けた送信元 {self.client_address[0]} port {self.client_address[1]} | {fmt % a}\n")

ThreadingHTTPServer((sys.argv[1], int(sys.argv[2])), H).serve_forever()

ルーターの両側でパケットを取る

家の PC から確認サーバーに curl で問い合わせながら、ルーターの LAN 側(br0)と WAN 側(wan)で同時に tcpdump を動かしました。

ip netns exec s371-rt tcpdump -nn -i br0 'tcp[tcpflags] & tcp-syn != 0'   # LAN 側
ip netns exec s371-rt tcpdump -nn -i wan 'tcp[tcpflags] & tcp-syn != 0'   # WAN 側
ip netns exec s371-pc1 curl -s http://192.0.2.80:37180/
$ curl -s http://192.0.2.80:37180/
203.0.113.10
--- LAN 側(br0)
IP 192.168.1.10.42674 > 192.0.2.80.37180: Flags [S], seq 1976617922, ...
IP 192.0.2.80.37180 > 192.168.1.10.42674: Flags [S.], seq 2346202245, ack 1976617923, ...
--- WAN 側(wan)
IP 203.0.113.10.42674 > 192.0.2.80.37180: Flags [S], seq 1976617922, ...
IP 192.0.2.80.37180 > 203.0.113.10.42674: Flags [S.], seq 2346202245, ack 1976617923, ...
--- 確認サーバーのログ
[checkip] 受けた送信元 203.0.113.10 port 42674 | "GET / HTTP/1.1" 200 -

同じパケット(seq 1976617922)が、LAN 側では送信元 192.168.1.10、WAN 側では 203.0.113.10 になっていました。 返事も WAN 側では 203.0.113.10 あてで、LAN 側では 192.168.1.10 あてに戻っています。サーバーは 192.168.1.10 という PC があることを知りません。curl が表示した 203.0.113.10 が、この家のグローバルIPです。

2台が同じポートで出ると、ポート番号も書き換わる

2台の PC から、わざと同じ送信元ポート(--local-port 40000)で問い合わせました。

ip netns exec s371-pc1 curl -s --local-port 40000 http://192.0.2.80:37180/json
ip netns exec s371-pc2 curl -s --local-port 40000 http://192.0.2.80:37180/json
ip netns exec s371-rt conntrack -L -p tcp
{"ip": "203.0.113.10", "port": 40000, "x_forwarded_for": null}
{"ip": "203.0.113.10", "port": 3423, "x_forwarded_for": null}

tcp      6 119 TIME_WAIT src=192.168.1.10 dst=192.0.2.80 sport=40000 dport=37180 src=192.0.2.80 dst=203.0.113.10 sport=37180 dport=40000 [ASSURED] mark=0 use=1
tcp      6 119 TIME_WAIT src=192.168.1.11 dst=192.0.2.80 sport=40000 dport=37180 src=192.0.2.80 dst=203.0.113.10 sport=37180 dport=3423 [ASSURED] mark=0 use=1
2台家の中の PCプライベートIPは .10 と .11
1個サーバーに見えた IPどちらも 203.0.113.10
34232台目のポート40000 が重なるので書き換えた

サーバーからは2台とも 203.0.113.10 に見え、区別はポート番号だけでした。 2台目は送信元ポート 40000 が1台目と重なるため、ルーターが 3423 に書き換えています。conntrack(Linux の接続の変換表)の1行には、行き(PC → サーバー)と帰り(サーバー → グローバルIP)の2組が並び、帰りの dport を見て、どの PC に戻すかを決めます。これが「1つのグローバルIPを家族全員で使える」仕組みです。

NAT を外すと、通信が返ってこない

ルーターの NAT の設定(homenat の表)を消して、同じ curl を送りました。確認サーバーで取ったパケットです。

$ curl -sS -m 5 http://192.0.2.80:37180/
curl: (28) Connection timed out after 5002 milliseconds
IP 192.168.1.10.49748 > 192.0.2.80.37180: Flags [S], seq 1275488381, ...
IP 192.0.2.80.37180 > 192.168.1.10.49748: Flags [S.], seq 3917746717, ack 1275488382, ...
IP 192.0.2.1 > 192.0.2.80: ICMP net 192.168.1.10 unreachable, length 68
IP 192.168.1.10.49748 > 192.0.2.80.37180: Flags [S], seq 1275488381, ...

プライベートIPのまま外に出ると、サーバーまでは届いても、返事の宛先 192.168.1.10 への道がインターネット側に無く、ISP のルーターが「届けられない(net unreachable)」を返しました。 RFC 1918 は、プライベートのネットワークの経路の情報を組織の外へ広めないことを決めています。プライベートIPがインターネットで使えないのはこのためです。NAT を戻すと、curl は再び 203.0.113.10 を返しました。

外から家の PC へは、そのままでは入れない

逆向きに、インターネット側のサーバーから家の PC(192.168.1.10 の 37190 番で Web サーバーを動かした)へつないでみました。

試したこと 結果
サーバー → 192.168.1.10:37190(プライベートIP) curl: (7) Failed to connect ... Couldn't connect to server
サーバー → 203.0.113.10:37190(グローバルIP、転送なし) curl: (7) Failed to connect ... Couldn't connect to server
ルーターにポート転送を足して、203.0.113.10:37190 200(PC の Web サーバーに届いた)

足したポート転送(DNAT:宛先を書き換える NAT)の設定です。

table ip portfw {
    chain pre {
        type nat hook prerouting priority dstnat; policy accept;
        iifname "wan" tcp dport 37190 counter dnat to 192.168.1.10
    }
}

ルーターは、知らない接続を家の中のどの機器に渡せばよいか分からないので、転送の設定が無いと外からは入れません。 家庭用ルーターの「ポート開放」「ポートマッピング」「仮想サーバー」と呼ばれる設定がこれにあたります。転送を足したときの PC 側のログには、接続元として外のサーバーのグローバルIP(192.0.2.80)が記録されていました。

プライベートIPアドレスの範囲(早見表)

この節では、どのアドレスがプライベートIPで、どれがグローバルIPなのかを見分けられます。

IANA の登録簿で「Globally Reachable(インターネットで到達できる)」が False の範囲は、グローバルIPとしては使えません。 主なものの早見表です。

範囲 名前・用途(IANA の登録簿) 根拠
10.0.0.0/8(10.0.0.0〜10.255.255.255) プライベート(Private-Use) RFC 1918
172.16.0.0/12(172.16.0.0〜172.31.255.255) プライベート(Private-Use) RFC 1918
192.168.0.0/16(192.168.0.0〜192.168.255.255) プライベート(Private-Use) RFC 1918
100.64.0.0/10(100.64.0.0〜100.127.255.255) 共有アドレス(CGNAT 用) RFC 6598
127.0.0.0/8 ループバック(自分自身) RFC 1122
169.254.0.0/16 リンクローカル(DHCP で取れないときなど) RFC 3927
192.0.2.0/24・198.51.100.0/24・203.0.113.0/24 文書用(例に使う) RFC 5737
0.0.0.0/8・240.0.0.0/4・255.255.255.255 特別な意味・予約 RFC 791 ほか

覚えやすい形にすると次のとおりです。

  • 110. で始まる2つ目以降の数字に関係なくプライベートIP
  • 2172.16. 〜 172.31. で始まる172.15 と 172.32 はプライベートではない
  • 3192.168. で始まる家庭用ルーターの多くが使う範囲
  • 4100.64. 〜 100.127. で始まるISP の CGNAT の内側。ルーターの WAN 側に出たら要注意
  • 5169.254. で始まるIP が自動で取れていないサイン

/8・/12 のような書き方(CIDR)の読み方と計算は、関連記事「CIDR計算・サブネット早見表|/0〜/32一覧とPython計算コード」で扱っています。

Python で判定する(ipaddress)

Python の標準ライブラリ ipaddress には、is_private と is_global があります。公式ドキュメントによると、どちらも IANA の登録簿の「Globally Reachable」に基づいて決まり、100.64.0.0/10 だけは両方とも False です。

import ipaddress
for s in ["192.168.1.10", "10.0.0.5", "172.16.0.1", "172.32.0.1", "100.64.0.10",
          "169.254.10.20", "127.0.0.1", "203.0.113.10", "8.8.8.8"]:
    a = ipaddress.ip_address(s)
    print(f"{s:15} is_private={a.is_private!s:5} is_global={a.is_global!s:5}")
192.168.1.10    is_private=True  is_global=False
10.0.0.5        is_private=True  is_global=False
172.16.0.1      is_private=True  is_global=False
172.32.0.1      is_private=False is_global=True
100.64.0.10     is_private=False is_global=False
169.254.10.20   is_private=True  is_global=False
127.0.0.1       is_private=True  is_global=False
203.0.113.10    is_private=True  is_global=False
8.8.8.8         is_private=False is_global=True

読み取れることです。

  • 172.32.0.1 はプライベートIPではありません。 172.16〜172.31 の外です。
  • 100.64.0.10 は is_private も is_global も False です。 CGNAT 用の共有アドレスは、プライベートでもグローバルでもない扱いです。
  • この記事の例に使った 203.0.113.10 は is_private=True でした。 文書用の範囲は「インターネットで到達できない」ので、Python では private に入ります。「RFC 1918 のプライベートIPか」だけを調べたいときは、3つの範囲と直接比べます(後の節の判定コード)。
  • 公式ドキュメントには、Python 3.13 で is_private・is_global の誤りが一部直されたとあります。版によって結果が変わる範囲があります。

IPv4とIPv6のグローバルIPの違い

この節では、IPv6 ではグローバルIPの確かめ方がどう変わるのかが分かります。

IPv6 では、家の PC やスマホ自身がグローバルIPを持つのが一般的です。 アドレスの数が十分にあるので、NAT で1つを共有しなくてよいからです。そのため、確認サービスが返す IPv6 アドレスは、PC の ip -6 addr・ipconfig に出るアドレスのどれかと一致します。

比べる点 IPv4 IPv6
長さと書き方 32ビット。203.0.113.10 128ビット。2001:db8::10 のように16進数
家の中の機器 プライベートIP+ルーターの NAT 機器ごとにグローバルIP(NAT なしが一般的)
グローバルの範囲 予約された範囲以外 2000::/3(IANA で Global Unicast)
家の中だけの範囲 10/8・172.16/12・192.168/16 fc00::/7(ユニークローカル)・fe80::/10(リンクローカル)
確認方法 外のサーバーに聞く 外に聞く。PC の表示の中にもある

IANA の登録簿では、2000::/3 が Global Unicast、fc00::/7 が Unique-Local(グローバルにはルーティングされない)、fe80::/10 が Link-Local です。2001:db8::/32 は文書用です。

PC に IPv6 のアドレスが何個も表示されるのは、一時アドレスがあるためです。 RFC 8981 は、盗み見た人が通信を結びつけられる期間を短くするために、時間とともに変わる一時アドレスを決めていて、外へ向かう通信は通常この一時アドレスから始めると書いています。確認サービスが返すのは、たいていこの一時アドレスです。

curl -4 https://api64.ipify.org   # IPv4 で外に出たときのグローバルIP
curl -6 https://api64.ipify.org   # IPv6 で外に出たときのグローバルIP
ip -6 addr show scope global      # Linux:PC 自身の IPv6(temporary が一時アドレス)

同じ PC でも、IPv4 で見えるグローバルIP(ルーターのもの)と IPv6 のグローバルIP(PC のもの)は別の値です。IP 制限に登録するときは、相手のサーバーが IPv4 と IPv6 のどちらで受けるかに合わせます。

固定IPと動的IPの違い(グローバルIPは変わる?)

この節では、グローバルIPが変わるのはいつかと、固定IPが必要な場面が分かります。

動的IP(家庭用の回線の多く)

接続のたびに ISP が空いている番号を割り当てる

ルーターの再起動・回線の切断・ISP の工事で変わることがある

追加の料金はかからない

固定IP(ISP のオプション・法人向け回線)

同じ番号をずっと使える

IP 制限・サーバーの公開・拠点間の VPN に向く

ISP のオプションや法人向けの契約で提供される

動的IPでは、ルーターの WAN 側のアドレスが変わると、確認結果もそのまま変わります。 実験で、家のルーターの WAN 側を 203.0.113.10 から 203.0.113.20 に変えて、もう一度問い合わせました。

変更前: 203.0.113.10
WAN を 203.0.113.20 に変えた後: 203.0.113.20

グローバルIPが変わったら記録するスクリプト

動的IPの回線で「いつ変わったか」を知りたいときは、定期的に確認して、前回と違うときだけ記録します。cron やタスクスケジューラーで数分おきに動かす形です。

#!/bin/bash
# グローバルIPが変わったときだけ記録する(cron などで定期的に動かす)
URL="${CHECK_URL:-https://api.ipify.org}"
STATE="${STATE_FILE:-$HOME/.global_ip}"
now=$(curl -fsS -m 10 "$URL") || { echo "$(date '+%F %T') 取得失敗" >&2; exit 1; }
old=$(cat "$STATE" 2>/dev/null)
if [ "$now" != "$old" ]; then
  echo "$(date '+%F %T') ${old:-なし} -> $now"
  echo "$now" > "$STATE"
fi

実験のネットワークで、確認サーバーに向けて3回動かしました(2回目と3回目の間にルーターの WAN 側を変えました)。

1回目
2026-10-23 17:07:24 なし -> 203.0.113.10
2回目(変化なし)
3回目(WAN が変わった後)
2026-10-23 17:07:24 203.0.113.10 -> 203.0.113.20

変わらないときは何も出力しないので、cron のメールやログが埋まりません。動的IPのままサーバーを外に見せたいときは、変わった IP を DNS に登録し直す「ダイナミック DNS(DDNS)」という仕組みが使われます。

確認できないとき・結果が合わないとき(CGNAT・VPN・プロキシ)

この節では、「ルーターの画面の値と確認サービスの値が違う」「自分のグローバルIPにつながらない」ときに、何が起きているのかを見分けられます。

ルーターの WAN 側の値 確認サービスの値と比べると 考えられること
グローバルIP 同じ ルーターがグローバルIPを直接持っている
100.64〜100.127 で始まる 違う ISP の CGNAT の内側
192.168・10・172.16〜31 で始まる 違う ルーターが二重(上にもう1台)
グローバルIP 違う VPN・プロキシ経由か、IP が変わった

CGNAT(キャリアグレード NAT)

CGNAT は、ISP が自分の設備で NAT をして、1つのグローバルIPを複数の契約者で共有させる仕組みです。 RFC 6598 は、CGN の装置と契約者のルーターのあいだに使うアドレスとして 100.64.0.0/10 を決め、このアドレスを送信元や宛先にしたパケットを ISP の境界の外に出してはならないとしています。

実験で、ISP の名前空間に CGNAT(100.64.0.0/10 から来たものを 192.0.2.1 に書き換える)を置き、家のルーターの WAN 側を 100.64.0.10 にしました。

$ ip -4 addr show wan   # 家のルーターの WAN 側(管理画面に出る値)
    inet 100.64.0.10/10 scope global wan
$ curl -s http://192.0.2.80:37180/   # PC から確認サービスに問い合わせ
192.0.2.1
$ traceroute -n 192.0.2.80
traceroute to 192.0.2.80 (192.0.2.80), 30 hops max, 60 byte packets
 1  192.168.1.1  0.344 ms
 2  100.64.0.1  0.289 ms
 3  192.0.2.80  0.216 ms

ルーターの画面には 100.64.0.10、確認サービスには 192.0.2.1 と、2つの値が食い違いました。 traceroute の2つ目にも 100.64 で始まる中継点が出ています。この状態で家のルーターにポート転送を設定し、外から 192.0.2.1:37190 へつなぐと、curl: (7) ... Couldn't connect to server で失敗し、家のルーターの転送の規則のカウンターは packets 0 のままでした。CGNAT の内側では、ポート転送をしても外からの接続は家のルーターまで届きません。 自宅のサーバーを公開したいときは、ISP の固定IP・グローバルIPの割り当てのオプションや、IPv6 を使う方法があります。

ルーターが二重になっている

ホームゲートウェイ(ISP から借りた機器)の後ろに、自分で買った Wi-Fi ルーターをルーターとして(NAT ありで)つないでいると、Wi-Fi ルーターの WAN 側は 192.168.x.x になります。NAT が2回かかるので、ポート転送も2台に設定が必要になります。Wi-Fi ルーターをブリッジ(アクセスポイント)モードにすると、NAT は1回になります。

VPN・プロキシを使っている

VPN やプロキシを通しているときに確認サービスが返すのは、VPN の出口やプロキシのグローバルIPです。 実験で、インターネット側にプロキシ(192.0.2.8)を置き、通す・通さないで比べました。

$ curl -s http://192.0.2.80:37180/json
{"ip": "203.0.113.10", "port": 49736, "x_forwarded_for": null}

$ curl -s -x http://192.0.2.8:37108 http://192.0.2.80:37180/json   # X-Forwarded-For を付けないプロキシ
{"ip": "192.0.2.8", "port": 50668, "x_forwarded_for": null}

$ curl -s -x http://192.0.2.8:37109 http://192.0.2.80:37180/json   # X-Forwarded-For を付けるプロキシ
{"ip": "192.0.2.8", "port": 50678, "x_forwarded_for": "203.0.113.10"}

$ curl -s -H "X-Forwarded-For: 198.51.100.7" http://192.0.2.80:37180/json   # 自分で書いた X-Forwarded-For
{"ip": "203.0.113.10", "port": 49740, "x_forwarded_for": "198.51.100.7"}

確認サービスが返す値の決め方

X-Forwarded-For を返すプロキシが付けた値が出る。自分で書いた 198.51.100.7 も通ってしまう
→
接続元を返すTCP でつないできた相手(プロキシなら 192.0.2.8)。書き換えられない

確認サービスによって、どちらを返すかが違う

  • プロキシを通すと、確認サーバーへの接続元は 192.0.2.8(プロキシ)になりました。 家のグローバルIPは、プロキシが X-Forwarded-For というヘッダーに書いたときだけ伝わります。
  • X-Forwarded-For は、送る側が自由に書けるヘッダーです。 最後の例では、存在しない 198.51.100.7 がそのまま届きました。確認サービスの中には X-Forwarded-For の値を返すものがあり、クラスメソッドの検証記事(2022年8月31日)では、checkip.amazonaws.com が X-Forwarded-For の最初の IP を返し、プロキシ経由でプライベートIPが表示された例が報告されています。プライベートIPが返ってきたら、途中のプロキシを疑います。
  • HTTPS の通信をプロキシに通すと(CONNECT で中継)、プロキシは中身を書き換えられないので X-Forwarded-For は付きません。確認サービスにはプロキシの IP だけが見えます。

プロキシの種類や開発ツールの設定は関連記事「プロキシサーバーとは|仕組み・種類と開発ツールの設定・407対処」で、出口のノード(exit node)を選んで外に出る VPN の動きは関連記事「Tailscaleとは|使い方・料金・VPNとの違いをWireGuardで実演」で扱っています。

見分けを Python で自動にする

ルーターの WAN 側の値と、確認サービスの値から、つながり方を判定するコードです。プライベートIPかどうかは RFC 1918 の3つの範囲と直接比べています(is_private は文書用の範囲なども True にするため)。

"""ルーターの WAN 側の IP と、確認サービスが返した IP から、つながり方を判定する"""
import ipaddress
CGNAT = ipaddress.ip_network("100.64.0.0/10")
PRIVATE = [ipaddress.ip_network(n) for n in ("10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")]

def judge(wan, seen):
    w = ipaddress.ip_address(wan)
    if wan == seen:
        return "一致:ルーターがグローバル IP を直接持っている"
    if w in CGNAT:
        return "不一致:WAN が 100.64.0.0/10。ISP の CGNAT の内側"
    if any(w in n for n in PRIVATE):
        return "不一致:WAN がプライベート IP。ルーターが二重(上にもう1台)"
    return "不一致:VPN・プロキシ経由か、確認の間に IP が変わった"

for wan, seen in [("203.0.113.10", "203.0.113.10"), ("100.64.0.10", "192.0.2.1"),
                  ("192.168.0.2", "203.0.113.10"), ("203.0.113.10", "192.0.2.8")]:
    print(f"WAN {wan:13} / 確認サービス {seen:13} -> {judge(wan, seen)}")
WAN 203.0.113.10  / 確認サービス 203.0.113.10  -> 一致:ルーターがグローバル IP を直接持っている
WAN 100.64.0.10   / 確認サービス 192.0.2.1     -> 不一致:WAN が 100.64.0.0/10。ISP の CGNAT の内側
WAN 192.168.0.2   / 確認サービス 203.0.113.10  -> 不一致:WAN がプライベート IP。ルーターが二重(上にもう1台)
WAN 203.0.113.10  / 確認サービス 192.0.2.8     -> 不一致:VPN・プロキシ経由か、確認の間に IP が変わった

グローバルIPを使うときの注意(IP制限・公開・知られたら)

この節では、確認したグローバルIPを設定に使うときに気をつけることが分かります。

  • 1IP 制限には「接続するときの経路」で確かめた値を入れるVPN を使って接続するなら、VPN をつないだ状態で確認する
  • 2動的IPなら、変わったときの手順を決めておく変わると IP 制限で自分が締め出される。固定IPか、範囲での許可を検討する
  • 3CGNAT の IP は他人と共有している許可すると、同じ IP を使う他の契約者も通れる
  • 4ポート転送は必要なポートだけ転送したポートは、インターネットのだれからでもつながる
  • 5IPv4 と IPv6 の両方を考えるIPv6 で接続すると、IPv4 の許可リストには一致しない

グローバルIPは、あなたが接続したすべての Web サイトのサーバーに記録されています。 ふだんの通信でも相手に見えている値なので、知られること自体は珍しいことではありません。IP アドレスから分かるのは、多くの場合、使っている ISP と大まかな地域です(IP アドレスと地域を対応づけたデータベースによる推定)。契約者と結びつけられるのは、割り当ての記録を持つ ISP です。

ドメイン名からサーバーのグローバルIPを調べる(正引き)には nslookup example.com や dig +short example.com を使います。IP アドレスからドメイン名を調べる(逆引き)は dig -x・nslookup IPアドレス です。

よくあるエラーと直し方

この節では、グローバルIPを確かめるときに実際に出たエラー文から、原因と直し方を引けます。

エラー文・症状 原因 直し方
curl: (6) Could not resolve host: … DNS が引けない。URL の書き間違い・ネットにつながっていない URL を確かめる。nslookup ホスト名 で名前が引けるか見る
curl: (7) Failed to connect to … Couldn't connect to server 宛先が待ち受けていない・転送されていない・途中で拒否 宛先とポートを確かめる。外から自宅へなら転送と CGNAT を確かめる
curl: (28) Connection timed out after … milliseconds 返事が来ない。NAT が無い・経路が無い・ファイアウォール 実験では NAT を外したときにこの表示。ルーターと経路を確かめる
curl: (56) CONNECT tunnel failed, response 403 会社などのプロキシが確認サービスへの接続を止めている ネットワークの管理者に確認する。値はプロキシの出口になる
PowerShell で curl の結果が表の形で出る Windows PowerShell 5.1 の curl は Invoke-WebRequest の別名 curl.exe と打つか Invoke-RestMethod を使う
dig: couldn't get address for 'resolver1.opendns.com': not found DNS サーバーの名前が引けない・DNS が制限されている ほかの方法(HTTP の確認サービス)を使う
確認結果がプライベートIP(192.168.x.x など) X-Forwarded-For を返すサービスを、プロキシ経由で使った プロキシを通さずに確かめる・別のサービスで比べる
ルーターの WAN が 100.64.x.x ISP の CGNAT の内側 ポート転送では外から入れない。ISP のオプションや IPv6 を検討
ipconfig の値で IP 制限したらつながらない プライベートIPを登録した 外の確認サービスで確かめたグローバルIPを登録する
昨日と値が違う 動的IPが変わった 固定IP・DDNS・変化の記録スクリプトを使う

よくある質問

Q. グローバルIPを確認する一番簡単な方法は? A. ブラウザで確認サイトを開くか、ターミナルで curl https://api.ipify.org(Windows は curl.exe https://api.ipify.org)を実行します。どちらも外のサーバーに「どこから来たか」を返してもらう仕組みです。

Q. ipconfig で出る IP アドレスはグローバルIPですか? A. 家庭や会社の多くでは違います。192.168.x.x・10.x.x.x・172.16〜31.x.x はプライベートIPで、グローバルIPはルーターが持っています。PC にグローバルIPが直接付いているのは、IPv6 のアドレスか、回線に直接つないでいる場合です。

Q. グローバルIPをコマンドプロンプトで確認するには? A. curl.exe https://api.ipify.org か nslookup myip.opendns.com resolver1.opendns.com です。ipconfig では PC 自身のプライベートIPしか分かりません。

Q. Mac や Linux のターミナルで確認するには? A. curl https://api.ipify.org か dig +short myip.opendns.com @resolver1.opendns.com です。PC 自身の IP は Mac なら ipconfig getifaddr en0、Linux なら ip -4 addr です。

Q. スマホのグローバルIPを確認するには? A. スマホのブラウザで確認サイトを開きます。Wi-Fi のときは家のルーターの、モバイル回線のときは携帯会社のグローバルIPが表示されます。Wi-Fi の設定画面の IP アドレスはプライベートIPです。

Q. グローバルIPとプライベートIPの違いは? A. グローバルIPはインターネットで重ならない外向きの住所、プライベートIPは家や会社の中だけで使う住所です。ルーターの NAT が、外に出るときにプライベートIPをグローバルIPに書き換えます。実験では、LAN 側で 192.168.1.10 だった送信元が WAN 側で 203.0.113.10 になりました。

Q. プライベートIPアドレスの範囲は? A. RFC 1918 の 10.0.0.0/8、172.16.0.0/12(172.16〜172.31)、192.168.0.0/16 の3つです。100.64.0.0/10 は CGNAT 用の共有アドレスで、プライベートIPとは別に決められています。

Q. グローバルIPはいつ変わりますか? A. 動的IPの回線では、ルーターの再起動・回線の切断・ISP の都合などで変わることがあります。固定IPの契約をしていれば変わりません。変化を記録するスクリプトを前の節に載せています。

Q. 確認サイトとルーターの画面で値が違うのはなぜ? A. ルーターの WAN 側が 100.64〜100.127 なら ISP の CGNAT、192.168 などなら二重ルーター、グローバルIPなら VPN・プロキシ経由の可能性が高いです。実験の CGNAT では、ルーターに 100.64.0.10、確認サービスに 192.0.2.1 と出ました。

Q. グローバルIPを知られると危険ですか? A. 接続した Web サイトのサーバーには必ず記録される値で、そこから分かるのは多くの場合 ISP と大まかな地域です。外から届くのはルーターが転送を許したポートだけなので、ポート転送を必要なものに絞り、ルーターの管理画面のパスワードを初期値のままにしないことが大切です。

Q. IPv6 のグローバルIPはどう確認しますか? A. curl -6 https://api64.ipify.org で外から見えた IPv6 が分かります。IPv6 では PC 自身がグローバルIPを持つのが一般的で、ipconfig や ip -6 addr に出る一時アドレスのどれかと一致します。

まとめ

  • グローバルIPは、インターネットで重ならない外向きの住所。家庭ではルーターが持ち、PC に表示されるのはプライベートIP。
  • 確認は「外のサーバーに送信元を返してもらう」。curl https://api.ipify.org、Windows は curl.exe・Invoke-RestMethod、DNS なら dig +short myip.opendns.com @resolver1.opendns.com。
  • NAT(NAPT)は送信元の IP とポートを書き換える。実験では 192.168.1.10 が 203.0.113.10 になり、2台目は同じ IP でポート 40000 が 3423 に変わった。
  • NAT が無いと返事が戻らず、外からはポート転送が無いと入れない。
  • プライベートIPは 10/8・172.16/12・192.168/16。100.64.0.0/10 は CGNAT。
  • ルーターの WAN 側と確認結果が違えば、CGNAT・二重ルーター・VPN・プロキシのどれか。CGNAT の内側ではポート転送が効かない。
  • IPv6 では PC 自身がグローバルIPを持つのが一般的で、外向きには一時アドレスが使われる。

ネットワークの通り道の基本は関連記事「デフォルトゲートウェイとは|調べ方・設定・決め方をLinuxで実演」で、curl のオプションは関連記事「curlコマンドの使い方|よく使うオプションとAPIの確認方法」で扱っています。

参考・出典

確認日はいずれも 2026年10月23日です。

  • IANA「IANA IPv4 Special-Purpose Address Registry」:https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
  • IANA「IANA IPv6 Special-Purpose Address Registry」:https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml
  • IANA「Internet Protocol Version 6 Address Space」:https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml
  • RFC 1918「Address Allocation for Private Internets」:https://www.rfc-editor.org/rfc/rfc1918.html
  • RFC 6598「IANA-Reserved IPv4 Prefix for Shared Address Space」:https://www.rfc-editor.org/rfc/rfc6598.html
  • RFC 5737「IPv4 Address Blocks Reserved for Documentation」:https://www.rfc-editor.org/rfc/rfc5737.html
  • RFC 8981「Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6」:https://www.rfc-editor.org/rfc/rfc8981.html
  • JPNIC「IPアドレス割り当て管理業務について」(2018年9月20日):https://www.nic.ad.jp/ja/materials/ip/4beginers20180920.pdf
  • ipify「A Simple Public IP Address API」:https://www.ipify.org/
  • Microsoft Learn「ipconfig」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/ipconfig
  • Microsoft Learn「Invoke-WebRequest(PowerShell 5.1)」:https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-5.1
  • Microsoft Learn「Invoke-RestMethod」:https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod?view=powershell-7.5
  • Microsoft Community Hub「Tar and Curl Come to Windows!」:https://techcommunity.microsoft.com/blog/containers/tar-and-curl-come-to-windows/382409
  • Microsoft サポート「Windows で IP アドレスを検索する」:https://support.microsoft.com/ja-jp/windows/windows-%E3%81%A7-ip-%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%99%E3%82%8B-f21a9bbc-c582-55cd-35e0-73431160a1b9
  • Apple サポート「Macの「TCP/IP」設定を変更する」:https://support.apple.com/ja-jp/guide/mac-help/mh14129/mac
  • ipconfig(8)(macOS):https://keith.github.io/xcode-man-pages/ipconfig.8.html
  • Cisco Umbrella「Verify Your Egress DNS IP Address」:https://www.cisco.com/c/ja_jp/support/docs/security/umbrella/224670-verify-your-egress-dns-ip-address.pdf
  • AWS「Security group rules for different use cases」:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html
  • Python ドキュメント「ipaddress」:https://docs.python.org/3/library/ipaddress.html
  • DevelopersIO「checkip.amazonaws.com のレスポンスはX-Forwarded-For ヘッダーがあればX-Forwarded-For ヘッダーのIPアドレスになる」:https://dev.classmethod.jp/articles/checkip-amazonaws-com-response-is-the-ip-address-of-x-forwarded-for-header-if-there-is-x-forwarded-for/

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「グローバルIPの確認方法|コマンド・プライベートIPとの違いとNATを実演」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?