IP アドレスはインターネット上の「住所」のようなもので、あなたのデバイスがウェブサイトにアクセスするとき、サーバー側にはこの住所が届いています。では、ブラウザ自身は自分の IP を知っているのでしょうか?
実は、ブラウザには自分の IP アドレスを調べる直接的な API がありません。ブラウザがリクエストを送った先のサーバーだけが、そのリクエストの送信元 IP を知ることができます。
そこでこのツールでは、ページを読み込んだときに /api/ip へリクエストを送り、Vercel のサーバーレス関数がリクエストヘッダーの x-forwarded-for や x-real-ip を読み取って IP アドレスを返す、という仕組みにしています。CDN やプロキシを経由している場合は x-forwarded-for に複数の IP が記録されることがあるため、先頭の値を使っています。
表示される IP が IPv4(203.0.113.1 のような形式)か IPv6(2001:db8::1 のような形式)かで判別し、種別も合わせて表示しています。