rawpixel via Pixabay
インターネット接続サービスによって見られないサイトが発生?
8月の末に、特定のインターネット接続サービスで使用されているIPが原因で、複数のWebサービスが利用できないという内容のブログ エントリーが話題になった(参照:
ねこんこ2)。
ブログでは「そのことをサポートに相談したが解決しなかった。同じ接続サービスでも、問題の動画サービスを利用できている人もいる。使いたいサービスが使えないので解約したいと伝えると、違約金と工事代金が掛かると言われた」そうした内容が綴られている。
投稿されたエントリーでは、接続サービスのサポートの対応に憤っていた。しかし、ブログを読んだ技術者のあいだでは、そのトラブルの背景にある
GeoIP 系技術に関心が集まっていた。
トラブルの原因は、
インターネット接続サービスから割り当てられたIPアドレスにある。IPアドレスは、
Internet Protocol Address の略で、インターネットに接続する機器に割り当てられた識別番号である。「153.124.196.146」という表記を見たことがあるかもしれない。これは、
IPv4(Internet Protocol version 4)と呼ばれるIPアドレスになる。
こうした数字の表記よりも「hbol.jp」のような表記の方がよく見るだろう。こちらはドメイン名と呼ばれるものだ。IPアドレスは、人間には分かり難いために、人が読めるような名前を付けたものがドメイン名だ。ちなみに「153.124.196.146」は、「hbol.jp」のIPアドレスを WHOIS(IPアドレスやドメインの登録者の情報を照会するサービス)で調べたものだ。
最近では、この IPv4 が枯渇してきたので、
IPv6(Internet Protocol version 6)への以降が進んでいる。IPv4 は、2の32乗で約43億個しかなかった。全人類の数よりも少ない。しかし、IPv6 は、2の128乗で膨大な数を識別可能になっている。
さて、
GeoIP の話をしよう。GeoIP は、IPアドレスを使った
Geolocation(地理位置情報)システムだ。狭義では
MaxMind 社のサービスを指す。広義では
IPアドレスから地域を推測する、同種のサービスを指す。
MaxMind 社の GeoIP は現在
GeoIP2 となっており、有償版以外にも無償版の GeoLite2 がある。試みに無償版の
GeoLite2 City のCSVファイルをダウンロードしてみる。圧縮ファイルで40MB。解凍すると292MBになる。
データには複数のファイルが入っており、その内 IPv4 のデータは197MBで325万行だ。IPアドレスにはIDが割り振られており、各国語のデータを見れば、その言語での国や州、県の名前が確認できる。
こうしたデータを使えば何が分かるのか。
アクセスしてきたユーザーのIPアドレスを検索することで、そのユーザーがどこからアクセスしてしてきたのかが分かる。たとえば「日本の東京都」からアクセスしている。あるいは「中国の湖北省」からアクセスしている。そうしたことが調べられる。
詳細なデータは不要で、ざっくりとした場所が分かればよい。そうした企業は、この無償版を利用しているだろう。有償版になれば、さらに細かいデータになる。
Webサービスの中には、アクセスしてきた地域によって、表示を変えたい場合がある。たとえば航空会社のページを考えてみる。東京からのアクセスと、沖縄からのアクセスでは、内容を変えた方がよいかもしれない。
また、Webサービスの中には、日本人のみを対象にしているものもある。そうしたサービスでは、他の国からのアクセスを遮断したいと考えるかもしれない。無駄な通信トラフィックを減らして転送量を節約するためだ。
そうした
地域毎の細かな処理を行いたい場合に、GeoIP 技術は役に立つ。