自分のグローバルIPアドレスを確認するとき、よく使われるサービスに以下があります。
ipinfo.io/my- 「確認くん」
どちらもアクセスすると自分のIPアドレスが表示されるため、一見すると同じサービスに見えます。
しかし、実際には確認している情報の方向性がかなり違います。
結論から言うと、
IPinfo = IPアドレスについて詳しく調べる
確認くん = Webサーバーから自分のHTTP接続がどう見えているか調べる
ipinfo.io/myとは
ipinfo.io/my にアクセスすると、現在はIPinfoの「What is my IP」ページへ移動し、自分のグローバルIPアドレスと、そのIPアドレスに紐づくさまざまな情報を確認できます。
IPinfoでは例えば以下の情報が表示されます。
- グローバルIPアドレス
- 国
- 都市
- 郵便番号
- 緯度・経度
- タイムゾーン
- ASN
- IPアドレスを保有している会社
- ISP / HostingなどのASN種別
- IPレンジ
- VPN判定
- Proxy判定
- Tor判定
- Hosting判定
- Residential Proxy判定
- Abuse Contact
つまり、単純にIPアドレスを表示しているだけではなく、
「このIPアドレスは誰が所有しているのか?」
「どこのネットワークなのか?」
「VPNやクラウドサーバーのIPではないか?」
といったIP Intelligenceまで調べられるサービスです。
例えばCloudflare WARPやVPNを有効にしたあと、
ASN
Company
Country
Privacy
などを見ることで、通信の出口がどのネットワークに変わったのかを確認できます。
IPinfoの位置情報はGPSではない
注意したいのがIPinfoに表示される位置情報です。
IPinfoでは、
City
Region
Country
Coordinates
Postal
などが表示されます。
しかし、これはスマートフォンのGPSから取得した現在地ではありません。
IPアドレスとネットワーク情報から推定された位置情報です。
そのため、
実際の現在地
↓
Ho Chi Minh City
IPinfo
↓
別の都市
のようになることもあります。
IPinfo自身も、IP GeolocationはGPSとは異なり、IPアドレスをネットワーク情報からおおまかな地域へマッピングするものと説明しています。
したがって、
IPinfoに表示された緯度・経度 = 自分の正確な現在地
ではありません。
「確認くん」とは
一方、「確認くん」は昔から存在する日本の接続情報確認サービスです。
確認くんではIPアドレスだけではなく、アクセス時にWebサーバー側から確認できるさまざまな情報を表示します。
例えば、
あなたのIPアドレス
ブラウザの種類
モバイル判定
プラットフォーム
使用言語
OSの解像度
ブラウザの表示サイズ
端末ピクセル比
色深度
画面の向き
GET / POST
MIMEタイプ
User-Agent
プロキシ経由の有無
X-Real-IP
プロキシ経由の元IP
転送プロトコル
転送ホスト
転送元IP
などです。
ここがIPinfoとの大きな違いです。
確認くんは、
「このIPがどんなIPなのか」
だけではなく、
「このブラウザから送られてきたHTTPリクエストがWebサーバーからどう見えているか」
を確認することに重点があります。
具体的な違い
ざっくり比較すると以下です。
| 項目 | IPinfo | 確認くん |
|---|---|---|
| グローバルIP | ○ | ○ |
| 国・都市 | ○ | 基本目的ではない |
| ASN | ○ | △ |
| ISP / Hosting判定 | ○ | △ |
| IP所有企業 | ○ | × |
| VPN判定 | ○ | × |
| Proxy判定 | ○ | △ |
| Tor判定 | ○ | × |
| Residential Proxy判定 | ○ | × |
| IPレンジ | ○ | × |
| User-Agent | ○/限定的 | ○ |
| Accept-Language | △ | ○ |
| MIME / Accept | × | ○ |
| Referer | × | ○ |
| ブラウザ情報 | △ | ○ |
| 画面サイズ | × | ○ |
| X-Real-IPなど | × | ○ |
| HTTPリクエスト確認 | △ | ◎ |
| IP Intelligence | ◎ | △ |
つまり、
IPinfoはIPデータベースを見るツール
で、
確認くんはHTTP接続のデバッグツール
に近いです。
VPNを確認するならどちら?
例えばVPNに接続して、
本当にVPN経由になっているのか?
を確認したい場合。
まずIPinfoを見るのがおすすめです。
VPN接続前:
IP: 1.2.3.4
ASN: 自宅のISP
Country: Japan
VPN接続後:
IP: 5.6.7.8
ASN: VPN事業者またはデータセンター
Country: Singapore
Privacy: VPN
のように変化していれば、少なくともWebサイトへの通信の出口IPが変わったことが分かります。
IPinfoにはVPN、Proxy、Tor、Relay、Hosting、Residential Proxyなどを判定するPrivacy Detection系のデータもあります。
Cloudflare WARPを確認する場合
Cloudflare WARPでも考え方は同じです。
WARP OFF:
PC
│
└── ISP
│
└── Webサイト
WARP ON:
PC
│
└── Cloudflare WARP
│
└── Cloudflare側ネットワーク
│
└── Webサイト
Webサイト側から見える送信元IPが変わります。
そのため、
ipinfo.io/my
で、
IP
ASN
Company
Country
を見ると違いを確認しやすいです。
単純な「出口IP確認」であれば、確認くんよりIPinfoのほうが分かりやすいと思います。
「確認くん」のプロキシ判定には注意
確認くんには、
プロキシ経由の有無
プロキシ経由の元IP
X-Real-IP
転送元IP
などがあります。
ここを見ると、
VPNを使っているのに「プロキシ経由の有無」がnoneになっている
ということがあります。
これは異常とは限りません。
例えばHTTPリバースプロキシでは、
X-Forwarded-For: 203.0.113.10
や、
X-Real-IP: 203.0.113.10
のようなヘッダーを使って元IPをバックエンドへ渡すことがあります。
しかし、一般的なVPNは、
クライアント
↓
暗号化トンネル
↓
VPNサーバー
↓
Webサイト
というネットワークレベルで通信を中継します。
Webサイトには通常、
VPNサーバーのIP
から直接アクセスしているように見えます。
VPNがわざわざ、
X-Forwarded-For: 本当のIP
を付ける必要はありません。
むしろそんなことをしたらVPNとして困ります。
したがって、
確認くん
プロキシ経由の有無
(none)
だから、
VPNを通っていない
とは判断できません。
ここはかなり重要です。
IPinfoのProxy判定も意味が違う
逆にIPinfoの、
VPN
Proxy
Tor
Hosting
Residential Proxy
という判定は、HTTPヘッダーにX-Forwarded-Forがあるか調べているだけではありません。
IPアドレスそのものについて、
このIPはVPNサービスで利用されているか
このIPはProxyとして利用されているか
このIPはTor Exit Nodeか
このIPはHosting Providerか
といった情報をデータベース側から判定しています。
つまり同じ「Proxy」という言葉でも、
確認くん
HTTP接続・HTTPヘッダーから見たプロキシ情報
と、
IPinfo
接続元IPアドレスそのものに対するProxy/VPN属性
では意味が違います。
ここを理解しておくと混乱しにくくなります。
curlならIPinfoが便利
IPinfoはブラウザだけでなくAPIとして利用できるのも便利です。
例えば、
curl https://ipinfo.io/json
とするとJSON形式で現在のIP情報を取得できます。
IPinfo公式によると、アカウントなしで利用できるPublic APIも提供されており、現在は同一IPで共有される1日1,000リクエストの制限があります。無料のIPinfo Liteでは別の利用条件が用意されています。
そのためGitHub ActionsやDockerなどで、
echo "=== Current public IP ==="
curl -s https://ipinfo.io/json
としておけば、
GitHub Actions → どのIPから外へ出ている?
Docker → ホストとコンテナで出口IPは同じ?
VPN → VPN接続後にIPは変化した?
Cloudflare WARP → WARP経由になった?
といった確認にも使えます。
IPアドレスだけ欲しい場合
詳細情報はいらず、
とにかくグローバルIPだけ取得したい
のであれば、IPinfoのようなIP確認サービスをCLIから利用する方法が便利です。
一方、
User-Agentはどう送信されている?
Accept-Languageは?
Refererは?
Proxy関連ヘッダーは?
ブラウザ情報は?
Webサーバーから自分はどう見えている?
まで調べたいなら確認くんのほうが向いています。
ちなみに両方でIPが違うことはある?
基本的には、同じブラウザ・同じタイミング・同じネットワーク経路なら、両方で同じ出口IPが表示されることが期待されます。
ただし、
- IPv4 / IPv6
- VPN
- Split Tunnel
- Proxy
- Cloudflare WARP
- ブラウザ拡張
- DNSとは別の経路制御
- サービス側のIPv4 / IPv6対応状況
などによって結果が異なる可能性があります。
特にIPv4とIPv6の両方が利用可能な環境では、
サービスA → IPv4
サービスB → IPv6
となる可能性があります。
IPinfoもIPv4とIPv6を扱っており、IPv6向けのエンドポイントについて公式に案内しています。
どちらを使えばいい?
用途別にすると簡単です。
自分のグローバルIPを知りたい
→ IPinfo
VPN接続後のIPを確認したい
→ IPinfo
WARP接続後のIPを確認したい
→ IPinfo
IPのASNを知りたい
→ IPinfo
IPがHosting/VPN/Proxyなのか調べたい
→ IPinfo
User-Agentを確認したい
→ 確認くん
Accept-LanguageなどHTTP情報を確認したい
→ 確認くん
Proxy関連ヘッダーを確認したい
→ 確認くん
Webサーバーから自分がどう見えているか調べたい
→ 確認くん
まとめ
ipinfo.io/myと確認くんは、どちらも自分のIPアドレスを表示できます。
しかし目的は少し違います。
IPinfo
↓
「このIPアドレスは何者なのか?」
↓
ASN
ISP
Company
Location
VPN
Proxy
Tor
Hosting
一方、
確認くん
↓
「Webサーバーから自分のアクセスはどう見えているのか?」
↓
IP
User-Agent
Language
Referer
HTTP headers
Proxy関連情報
ブラウザ情報
という違いです。
個人的には、
VPN / WARP / IP確認
→ IPinfo
HTTP通信・ブラウザ・Proxyヘッダーのデバッグ
→ 確認くん
という使い分けが一番分かりやすいと思います。
そしてVPNを確認するときに特に注意したいのが、
確認くんで「プロキシ経由の有無 = none」と表示されても、VPNを経由していないという意味ではない
という点です。
VPNやWARPが正しく動いているか確認するなら、まず接続前後のグローバルIPとASNを比較するのが分かりやすい確認方法です。

