今更だけどシーヴァ君のnoteについてたコメントが為になったので転載
https://note.com/sheva_access/n/n83696685a6c4

NoteはバックエンドはRailsでDeviseライブラリをログイン部分に使用していると思われるのですが、Deviseは、current_sign_in_ipとlast_sign_in_ipとログイン時のIPを自動で保存する仕様になっています。

こちらが流出した可能性が高いと個人的に考えています。

---

>> @sheva様
実際にipが保存される際のコードはこちらです。
https://github.com/heartcombo/devise/blob/a17abad57a5d97594701cee7eac072170f739313/lib/devise/models/trackable.rb#L26

こちらが呼ばれるのは、
https://rubydoc.info/github/hassox/warden/master/Warden%2FHooks:after_set_user

こちらのWardenのcallbackのときのようです。具体的には、
> This callback is triggered the first time one of those three events happens during a request: :authentication, :fetch (from session) and :set_user (when manually set).

とありますが、ログイン時と考えて良さそうです。

---

last_sign_in_ip はログイン時の「前回のログインしたip」が保存されるカラムなので、
大阪に引っ越された後にログインし、その1つ前の神奈川でログインした時のipが保存されるのは実装と合致していると思います。

---

2つ目の記事からIPアドレスが表示され始めるというのは該当箇所が「このクリエイターの人気記事」のデータであるというのが関係していると思いますね。
(1記事だけだとまだデータがない)