ipkiwiの仕組み
ipkiwiが速く、かつ秘匿性を保てる理由は、ほぼひとつの決定に尽きます。間にサーバーを置かなかったことです。このページでは、その代わりに何を据えたのかを説明します。
オリジンサーバーがない
普通のウェブサイトには、どこかにオリジンサーバーがあります。ある一つの都市に置かれた、すべてのリクエストが最終的に到達するマシンです。前段にCDNを置けば助けにはなりますが、個人に関わる部分はオリジンから来るほかなく、ジャカルタからの訪問者はそのマシンのある場所まで往復する時間を待つことになります。
ipkiwiにオリジンはありません。サイト全体はCloudflareのネットワークに配られた静的ファイルの集まりで、それを個別化するコードはあなたの接続を受け付けたのとまさに同じエッジサーバー上で動きます。サンパウロでもワルシャワでもジャカルタでも、応答するマシンは数ミリ秒の距離にあります。
個別のページがキャッシュされたファイルのままでいられる理由
あなたのデータを表示するページも、ほかと同じ静的ファイルです。リクエストが届くと、エッジはそれをキャッシュから取り出し、流れていく途中で書き換えます。印を付けた場所を、接続そのものから得た値——あなたのアドレス、その登録国、プロバイダ、ブラウザが合意したプロトコル——に置き換えるのです。
組み立ても、問い合わせも、レンダリングもありません。ファイルはデプロイ時に一度だけ作られており、リクエストごとの仕事は、すでに流れ始めているストリームに数十個の文字列を差し込むことだけです。
答えが一拍遅れて現れるのではなくHTMLの中にあるのは、このためです。レイアウトのずれが起きないのも同じ理由で、後から取りに行くものがないので、遅れて届くものもありません。
記録するものがない
データベースも、アクセスログも、解析スクリプトもありません。これは自制ではなく、ログの置き場所がそもそも存在しないということです。コードは一度のリクエストの間だけ動き、それが終われば何も抱えません。
あなたのアドレスは、読まなければ答えようがないので読まれ、あなたのページを書くために使われ、応答とともに消えます。私たちがそれを見ることはなく、差し出す記録も、漏れる記録も、要求されうる記録も存在しません。
ご自分で確かめてください
速さや秘匿性の主張は口先でいくらでも言えます。だからツールの各ページは、自分自身を測ります。答えの下の行に並ぶ三つの数値は、いま行われた通信についてあなたのブラウザが採取したものです。エッジの応答にかかった時間、他ドメインへ出たリクエストの数、書き込まれたCookieの数。
後ろの二つは常にゼロです。他のドメインからは何も読み込みません。フォントもスクリプトもタグもフレームもです。ブラウザのネットワークパネルを開けば、十秒ほどで確かめられます。
ほかに試す価値のあることが二つあります。JavaScriptを切って再読み込みしても答えは残ります。そしてページのソースを表示すれば、自分のアドレスがHTMLの中に収まっているのが見えます。
同じデータをJSONで
ページにあるものはすべて、一つのエンドポイントから取得できます。キーも登録も不要で、通常の利用に回数制限はありません。
curl https://ipkiwi.com/api/me
シェルスクリプト向けには、アドレスだけを返す /api/me.txt があります。どちらも同じエッジで動き、同じ数ミリ秒で応答し、ページとまったく同じだけ記録されます——つまり、まったく記録されません。
よくある質問
なぜ他のIP確認サイトより速いのですか。
移動するものが何もないからです。多くのサイトはページを読み込み、スクリプトを走らせ、APIを呼び、それから答えを描きます。ここでは答えが届いた時点ですでにHTMLの中にあり、しかもそれを書いたのはあなたの接続を受け付けた当のマシンです。
JavaScriptを無効にしても動きますか。
答えの部分は動きます。アドレス、所在地、プロバイダ、接続の詳細はHTML自体に入っています。JavaScriptが足すのは、サーバーには知りようのないもの(画面サイズ、ブラウザのタイムゾーン)と、ツール各ページ上部の実測値だけです。
ログをまったく持たないことが可能なのですか。
書き込むサーバーが存在しません。コードは一度のリクエストの間だけ動き、終われば何も保持しません。データを残さないことは、残すことより手間が少ないのであって、多いのではありません。
ツールページの実測値はどこから来ていますか。
あなた自身のブラウザからです。応答時間とリクエスト数はNavigation TimingとResource Timingから取得され、いま行われた通信を表しています。私たちはその数値を一切見ていません。