動的IP(変動IP)はどのタイミングでアドレスが変わるのか

未分類

本記事では、動的IPアドレス(変動IPアドレス)がどのタイミングで変更されるのか調査しました。

動的IPだと、IPアドレスが固定ではなく、都度変化していきます。今回実装しようとしている内容が、IPアドレスの変動が深く関与するので、今回どのタイミングでIPアドレスが変動するのかを調査して、実装している内容に影響を与えるのか評価しようと思います。

動的IPによるIPアドレス変更が影響する事象

まず、私がこの動的IPアドレスを気にしているかと言うと、お気に入り機能の実装に影響してくるからです。自分が想定している実装は、気軽にお気に入り機能が使用できるように、ログインしていないユーザーからもお気に入りができるように設計したいと考えています。

ユーザーと、そのお気に入りの対象を多対多で接続しており、ユーザーがログインしている場合では中間テーブルにユーザーIDがない場合は中間を生成、すでに存在している場合は中間テーブルを削除する想定でいます。

このときに、ユーザーがログインしていない場合も考慮して、ログインしていないユーザーからもuser_itemを登録できるようにします。下記のようなポリモーフィック関連付けを想定しています。

ログインしている場合は、railsのgemを使用すればログインした段階でどのログインIDのユーザーか判別できますが、ログインしていない場合は、IPアドレスなどの別の手段ですでにお気に入りをしているか(user_itemテーブルにリクエストした人のguest_user idが存在しているか)を確認する必要があります。railsには、request.remote_ipでリクエスト先のIPアドレスを取得することができますので今回はそれを使用する想定です。

この場合にIPアドレスが動的になってしまうと、一度あるitemをお気に入りをしたユーザーがしばらく経ってIPアドレスが変わってしまった時に同じitemにお気に入りできてしまうという事象が発生してしまいます。

本記事では、railsのremote_ipは可変IPによって変化してしまうのかを調査していきます。

IPアドレスなどの用語の基礎知識を学ぶ

通信関係の知識に疎いので、まずは通信を使用していく上で必要な用語を備忘録として残しておきます(すでにこの辺りの知識が詳しい方は飛ばしてください)。

  • グローバルIPアドレス

世界中で一意のIPアドレス。キャリア回線などで使用される。

  • プライベートIPアドレス

企業や家庭など、プライベート空間で使用されるIPアドレス。プライベートな空間が違えば、重複は可能だが、他のグローバルIPアドレスに接続したい場合は自身もグローバルIPに変換が必要。wi-fi経由や企業などで使用される。

動的IPについて調査する

まずは動的IPについて調査していきます!まずは、どのタイミングで変わるのか…と言うことで色々調べてみました。

IPアドレスはこちらのサイト(確認くん)で調べることができます。

電源のON・OFFで調査する。

今回はスマホを使用して、wi-fiを使用した場合とキャリアの回線を使用した場合で調査しました。

  • wi-fiを使用した場合

電源ON-OFFではIPアドレスは変わらず

  • キャリア回線を使用した場合

電源ON-OFFでIPアドレスが変わった!

wi-fiを使用した場合はIPアドレスは変わらなかったものの、キャリアでは変わりました。調べてみたところ、wi-fiではwi-fiの電源を落とすとIPアドレスは変わってしまうみたいです。

放置してみる

  • wi-fiを使用した場合

現在検証中です…しばらくお待ちください。

  • キャリア回線を使用した場合

キャリア回線では、20分〜30分間隔でIPアドレスが変動しました。キャリアによって変動すると思いますが、

IPアドレスの検証まとめ

IPアドレスが変わる瞬間について調査しました。IPアドレスがそこまで変わらなければあまり意識する必要がありませんが、検証次第では対策を練る必要がでてくるかもしれません(お気に入り機能を利用できるのはログインユーザーのみにするとか…)

検証結果がでるまでしばらくお待ちください…

コメント

タイトルとURLをコピーしました